# > zramctl /dev/zram0
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo 0B 0B 0B 0B 8
# >
Ни точки монтирования, ни объёмов (смотри выхлоп df в моём предыдущем комментарии). Может быть, потому без аргументов и молчит. Но тогда почему оно не может определить ничего?
В общем просто сделать запись в fstab не достаточно, надо делать скрипт выполняющийся при старте системы. С init скриптами всё более менее ясно, сделал копии симлинка и rc скрипта вписав внего что нужно и всё. А вот как быть с проклятущим Потерингоподелием, в инитах которого и алкоголику не разобраться?
tima@home-pc:~$ apt list |grep swap
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
cramfsswap/testing 1.4.1-1.1 amd64
dphys-swapfile/testing,testing 20100506-2 all
hotswap/testing,testing 0.4.0-15 all
hotswap-gui/testing 0.4.0-15 amd64
hotswap-text/testing 0.4.0-15 amd64
libdata-swap-perl/testing 0.07-2+b3 amd64
python-swap/testing,testing 1.2.1-7 all
swap-cwm/testing,testing 1.2.1-7 all
swapspace/testing 1.10-4 amd64
tima@home-pc:~$
Это понятно, но почему в качестве размера указан ноль и зачем во втором параметре указывать тип «размер», хотя по идее и так должно быть ясно, что в первом параметре размер, а не что-то иное?
Или ноль указывают для автоматического определения размера модулем?
А есть возможность задавать уровень компрессии?
А то судя по озвученным выше результатам он по умолчанию задан не большим, около 3, а я бы хотел 7 для более полного занимания места. (В теории то конечно пожимать пожатое смысла нету, да на практике достаточно часто эфект от этого имеется, при том что супротив пугалок и расход времени процессора на сильное сжатие и распаковку выходит не большим или вообще не заметным)
Это я прочитал, я спрашиваю как задать уровень компрессии? В gzip он например принимает значения от 1-9, при том самый вкусный, 7 программисты не любят как избыточный, считая что уровни больше 5 «не нужно».
Regardless the value passed to this attribute, ZRAM will always allocate multiple compression streams - one per online CPUs - thus allowing several concurrent compression operations. The number of allocated compression streams goes down when some of the CPUs become offline. There is no single-compression-stream mode anymore, unless you are running a UP system or has only 1 CPU online.
Возможность пожертвовать процессором на машинах с недостатком оперативы в пользу экономии этой самой оперативы. Для примера - на работе очень туго компилять что-то жирное при запущенных KDE, Firefox и Thunderbird. Памяти 4 гига, нарастить нет возможности(мать - древнее говно).
С zram - всё гораздо лучше. В OOM всё выпадает только если в tmpfs компилять, ну дак это и понятно. Вышеозначенное трио(Firefox+Thunderbird+KDE) через некоторое время выжирает >2 гигов.
Система 64-битная, но на 32-битной было не лучше(я на ней давно сидел пока памяти было 2 гига - смысла в 64 битах было немного, а жор был бы больше).
Я в курсе существования данного пакета, но у меня systemd, да. Я не стану перекатываться обратно на OpenRC только потому, что обжился, обмазался скриптотой и прочее, не хейтер OpenRC и не фанатик systemd.
Алсо, systemd на десктопе (если не хочется странного) проще юзать.
Вопрос, как zswap из буфера в swap переносит страницы, в сжатом виде или нет. Если нет, то при жесткой нехватке памяти получится что сжатия нет вообще.
Так-то да, но в данном случае на сжатом разделе у нас создан swap-раздел.
Да. И что?
Поэтому zram универсальней.
Как раз zswap универсальней - он может хранить сжатые страницы памяти в RAM (в своем LRU) и может вытеснять эти страницы во внешнюю память. А zram умеет только первое.
Впервые слышу, что у zram ограничена степень сжатия.
Если ты так шутишь, то не смешно. На вопрос ответ «Степень сжатия может быть больше 2:1» на вопрос «чем это лучше zswap» означает, что у zram степень сжатия может быть больше 2:1, а не наоборот.
The zbud type zpool allocates exactly 1 page to store 2 compressed pages, which
means the compression ratio will always be 2:1 or worse (because of half-full
zbud pages). The zsmalloc type zpool has a more complex compressed page
storage method, and it can achieve greater storage densities. However,
zsmalloc does not implement compressed page eviction, so once zswap fills it
cannot evict the oldest page, it can only reject new pages.
(Тут я перечитал последнее предложение снова, и начал сомневаться, правильно ли я его понял.)
Я в том плане, что zram можно использовать не только для swap, но и для каких-нибудь других задач.
А zswap выполняет строго одну задачу. Но при этом настраиватся легче, но только при загрузке. zram можно увеличить, можно совсем убрать, прямо на живую.
Deleted ()
Последнее исправление: MyLittleLoli
(всего
исправлений: 1)
zram - блочное устройство в памяти. На нем мы создаем swap-раздел. Когда ядро решает, что пришло время свопиться, все происходит, грубо говоря, как обычно: память->swap. Но все это дело остается в памяти, само блочное устройство не свопится. До swap-раздела на диске дело не доходит, его может даже и не быть.
В случае zswap, есть еще промежуточный шаг, в виде буфера zswap, т.е. память->буфер zswap->swap. Тут swap-раздел насколько я понимаю, обязателен. Но он может быть хоть тем же разделом на zram-устройстве.
Deleted ()
Последнее исправление: MyLittleLoli
(всего
исправлений: 1)