Есть ли причина использовать tmpfs вместо или в дополнение к zRAM?
Я думаю об использовании zRam на моем сервере. Из того, что я читал о zRam, он, очевидно, делает все, что делает tmpfs и даже больше.
Когда zRAM работает, есть ли причина держать tmpfs рядом? Есть ли что-то, что tmpfs делает, чего не может сделать zRAM? Есть ли причина использовать tmpfs вместо или в дополнение к zRAM?
2 ответа
Данные, записанные в tmpfs
будет храниться в памяти без сжатия, пока доступно достаточно памяти. Как только система оказывается под давлением памяти, она пытается переместить данные из tmpfs
(и из любых других мест, как обычная память процесса) к любому swap
(в том числе swap
на zram
) это можно найти. Также вы можете изменить параметры tmpfs
делая простое mount -o remount
особенно размер файловой системы или количество инодов.
С помощью zram
поскольку поддержка временной файловой системы имеет недостаток, все записанные там данные должны быть немедленно сжаты (и распакованы при использовании). Кроме того, вам нужно поместить файловую систему поверх, какие структуры должны быть сохранены, даже если фактические файлы не хранятся. Также вы получаете ограничения, такие как максимальное количество инодов, вы не можете легко изменить его размер и так далее.
ИМХО, лучшее решение - смонтировать tmpfs
где-то использовать и создать zram
своп. Он сочетает в себе преимущества обоих, сводя к минимуму недостатки.
Или купите больше баранов couse;)
Вы получите лучшую производительность от использования zram
за swap
из-за сжатия, которое возможно.
zram-init
марки zram
прост в использовании. Не забудьте прочитать инструкцию.
Ваше ядро должно быть собрано с CONFIG_ZRAM_LZ4_COMPRESS
возможность иметь возможность извлечь выгоду из lz4
сжатие
я использую zram
за swap
& за /tmp
(zram-init
использует разумные параметры монтирования по умолчанию для /tmp
):
root@alpine [~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/vda7 partition 1045500 0 -1
/dev/zram0 partition 1048572 0 16383
root@alpine [~]# mount|grep zram
/dev/zram1 on /tmp type ext4 (rw,nosuid,nodev,noexec,discard)
Есть еще варианты использования для использования tmpfs
, Я использую их для привязки монтажных томов с параметрами безопасного монтирования в lxc
контейнеры:
root@http [~]# mount|grep tmpfs
tmpfs on /var/www/domain.com/bin type tmpfs (ro,nosuid,nodev,relatime,size=200k)
tmpfs on /var/www/domain.comm/dev type tmpfs (rw,nosuid,relatime,size=4k,mode=755)