Программы
Храним swap в памяти. Разве это возможно?

Храним swap в памяти. Разве это возможно?

«ловкость рук и никакого мошенничества»

Swap — один из механизмов работы виртуальной памяти. Если какие-то данные не нужны долгое время, их стоит убрать из оперативной памяти во вторичную (жёсткий диск, например), а освободившуюся оперативную память использовать для более активных участков виртуальной памяти.

Так как жёсткий диски в разы медленнее оперативной памяти, возвращение кусочков памяти в работу — долгая операция. Но что если держать swap прямо в памяти?

Так, конечно, будет быстрее, но смысла в этом особо нет — мы же не освободим память для новых данных... Или освободим?

Мы можем научить часть памяти работать с компрессией (сжимать данные). Память же сейчас хранится «как есть», не сжимаясь…

Именно об этом задумались создатели проекта zram. С его помощью можно хранить swap данные не на диске, а в «сжатой памяти». Создаются блочные устройства для swap, которые сохраняют информацию в сжатом виде. И всё это в памяти.

То есть мы забираем из ram небольшую часть, чтобы, когда её будет не хватать, быстрее работать со «swap». Да, CPU будет использоваться чуть больше, но это куда быстрее чем простой на запросы к жёсткому диску.

В общем, «ловкость рук и никакого мошенничества». Вполне неплохо работает на устройствах, где памяти не хватает (ноутбуки, сервера виртуализации).

Опять же установить zram на Ubuntu / Mint Linut / Debain довольно просто:

sudo aptitude install zram-config

После чего проверить:

$ sudo swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 4100092 403188 -1
/dev/zram0 partition 490936 136 5
/dev/zram1 partition 490936 140 5
/dev/zram2 partition 490936 140 5
/dev/zram3 partition 490936 140 5

— на каждый процессор по одному «swap-у».

Используйте память с умом — ставьте zram!

Изображение Шпаргалка по командам Linux, FreeBSD и MacOS