# Настройка zram Если оперативной памяти вашего компьютера недостаточно (3 Гб и меньше), то наиболее быстрым способом решения проблемы является использование подкачки, так как компиляция некоторых пакетов требует мощного ПК, в том числе, большого объёма ОЗУ. Для этих целей можно использовать файл или раздел подкачки, но можно и zram. _Действия производятся на хост-системе_ Для начала нужно загрузить модуль. В системе его может не оказаться, поэтому можно его скомпилировать. Такие дистрибутивы как Ubuntu и прочие предоставляют пакет `zram-config`, в Fedora и Calculate Linux zram активирован по умолчанию. Выполните: ```bash modprobe zram num_devices=4 ``` В `num_devices` задаётся количество сжатых блочных устройств, которое будет создано. Для наиболее оптимального использования CPU стоит учесть: сжатие каждого устройства `zram` однопоточное. Потому создавайте их по количеству ядер. При настройке модуля задается фиксированный размер НЕ сжатых данных в байтах. ``` SIZE=1536 echo $(($SIZE*1024*1024)) > /sys/block/zram0/disksize echo $(($SIZE*1024*1024)) > /sys/block/zram1/disksize echo $(($SIZE*1024*1024)) > /sys/block/zram2/disksize echo $(($SIZE*1024*1024)) > /sys/block/zram3/disksize ``` В итоге будет создано устройство `/dev/zram0` заданного размера - замените значение `1536` переменной `$SIZE` на необходимое вам. Как было описано в предыдущей инструкции о выборе размера подкачки, в среднем, при компиляции ПО используется около 3-4 Гб ОЗУ. Из этого и рассчитывайте размер сжатого блочного устройства `zram`. В большинстве популярных дистрибутивов Linux уже настроен `zram`. Но, как правило, его объём равен половине объёма ОЗУ, что на слабых ПК может быть недостаточным. ``` Disk /dev/zram0: 1610 MB, 1610612736 bytes, 393216 sectors Units = sectors of 1 * 4096 = 4096 bytes Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes ``` Данные, записанные на него, будут прозрачно сжаты в памяти. Что делать с ним далее — уже ваш выбор, я на этих устройствах создаю разделы подкачки. ``` mkswap /dev/zram0 mkswap /dev/zram1 mkswap /dev/zram2 mkswap /dev/zram3 swapon /dev/zram0 -p 10 swapon /dev/zram1 -p 10 swapon /dev/zram2 -p 10 swapon /dev/zram3 -p 10 ``` Для того чтобы проверить результат, выполните: ``` swapon -s ``` Далее уже ядро рассчитывает само, какие данные туда перемещать в зависимости от того, как часто вы к ним обращаетесь и как много памяти свободно. В любом случае, для регулирования отправления данных в swap, настройте `vm.swappiness`, который предоставляет очень быструю и простую конфигурацию. О настройке читайте [здесь](additional/swap). Так как с помощью zram подкачка находится в ОЗУ, т.е. данные в нём просто сжимаются, то такая подкачка (swap) даже быстрее обычного файла или раздела на жёстком диске. [Источник](https://m.habr.com/ru/post/172137/).