Я думаю об использовании zRam на моем сервере. Из того, что я читал о zRam, очевидно, он все делает tmpfs делает и многое другое.
После того, как zRAM заработает, есть ли причина хранить tmpfs? Есть ли что-нибудь, что tmpfs делает, чего не может сделать zRAM? Есть ли причина использовать tmpfs вместо или в дополнение к zRAM?
Данные, записанные в tmpfs
будут храниться в памяти без сжатия, пока доступно достаточно памяти. Когда система испытывает нехватку памяти, она пытается переместить данные из tmpfs
(и из любых других мест, например, из обычной памяти процесса) в любую swap
(включая swap
на zram
) его можно найти. Также вы можете изменить параметры tmpfs
делая простой mount -o remount
, особенно размер файловой системы или количество inodes.
С помощью zram
поскольку поддержка временной файловой системы имеет тот недостаток, что все записываемые в нее данные должны быть немедленно сжаты (и распакованы при использовании). Также вам нужно поместить поверх файловую систему, структуры которой необходимо хранить, даже если файлы не хранятся. Также у вас есть ограничения, такие как максимальное количество inodes, вы не можете легко изменить его размер и так далее.
ИМХО, лучшее решение - смонтировать tmpfs
где-нибудь использовать и создать zram
замена. Он сочетает в себе преимущества обоих, сводя к минимуму недостатки.
Или купите еще барана;)
Вы получите лучшую производительность от использования 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)