ZRAM Armbian. Increase swap and tmp space
1. Проверка
1.1 SWAP
Проверка размера swap командой:
1 |
free -h |
В результате команды получается:
1 2 3 |
total used free shared buff/ cache available Mem: 491Mi 78Mi 273Mi 2.0Mi 139Mi 399Mi Swap: 245Mi 0B 245Mi |
или использовать команду
1 |
sudo swapon --show |
1 2 |
NAME TYPE SIZE USED PRIO /dev/zram0 partition 245.9M 0B 5 |
Использует только 256 Мб
1.2 TMP
Командой
1 |
df -h |
получается:
1 2 3 4 5 6 7 8 9 10 |
Filesystem Size Used Avail Use% Mounted on udev 188M 0 188M 0% /dev tmpfs 50M 2.6M 47M 6% /run /dev/mmcblk0p1 29G 3.6G 25G 13% / tmpfs 246M 0 246M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 246M 0 246M 0% /sys/fs/cgroup tmpfs 246M 4.0K 246M 1% /tmp /dev/zram1 49M 2.6M 43M 6% /var/log tmpfs 50M 0 50M 0% /run/user/1000 |
2. Increase by using armbian-zram-config
Open
1 |
/etc/default/armbian-zram-config |
, add these lines
1 2 |
ZRAM_PERCENTAGE=200 # Set swap space = physical ram * 200% TMP_SIZE=1000M # Set tmp size as 1G |
3. Снова проверить.
проверить swap командой:
1 |
sudo swapon --show |
и выход должен быть:
1 2 |
NAME TYPE SIZE USED PRIO /dev/zram0 partition 983.4M 0B 5 |
и выход должен быть:
1 2 3 4 5 6 7 8 9 10 |
Filesystem Size Used Avail Use% Mounted on udev 188M 0 188M 0% /dev tmpfs 50M 2.6M 47M 6% /run /dev/mmcblk0p1 29G 3.9G 24G 14% / tmpfs 246M 0 246M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 246M 0 246M 0% /sys/fs/cgroup /dev/zram2 985M 2.5M 916M 1% /tmp /dev/zram1 49M 3.5M 42M 8% /var/log tmpfs 50M 0 50M 0% /run/user/1000 |
4. Another way (Ubuntu)
if
1 |
/etc/default/armbian-zram-config |
not found, use this way
4.1 SWAP
- unmount swap: sudo swapoff -a
- delete swap: sudo rm -f /dev/zram*
- create 1G swap space: sudo fallocate -l 1G /swap<span style="white-space: pre-wrap; font-family: serif; font-size: medium; background-color: rgb(250, 250, 250);"> </span>
- change permission: sudo chmod 600 /swap
- make swap: sudo mkswap /swap<span style="white-space: pre-wrap; font-family: serif; font-size: medium; background-color: rgb(250, 250, 250);"> </span>
- mount swap: sudo swapon /swap
4.2 TMP
- unmount /tmp: sudo umount /tmp
- mount new /tmp: sudo mount -t tmpfs -o size=1G tmpfs /tmp
4.3 Automatically bring on boot
Open
1 |
/etc/fstab |
and add this line
1 2 3 4 5 6 7 8 |
# swap /swap swap swap sw 0 0 # /tmp # First comment out default setting # tmpfs tmp tmpfs defaults,nosuid 0 0 # Then add this line tmpfs /tmp tmpfs defaults,nosuid,size=1G 0 0 # для tmp |
Другой вариант (рабочий)
Главная боль — это оператива. Если слабый процессор — это половина беды и можно подождать, то когда кончается оперативка все идет в разнос.
Пример — перенес проект из Yandex Облака на домашнюю сеть. В сети поставил Orange Pi Zero+, на нем запустил Docker. Под докером nodejs, redis, postgres. Само собой, оператива начала таять. Если на чистой системе на холостом ходу 40% свободной, то под клиентской нагрузкой уже 5%. Нагрузка на процессор стала резко расти, начались тормоза вплоть до ребутов.
К счастью есть файл подкачки. По дефолту он имеет размер половину от обьема оперативной памяти. Есть даже убеждение, что его нельзя увеличивать до значений больше размера оперативы, но на практике никаких проблем не возникало.
Изначальный конфиг 512 Мб ОЗУ, 256 мб Своп. Увеличим Своп до 1 Гб.
Своп хранится в файловой системе в виде файлов. Для оптимизации работы с ним его разбивают на отдельный части. В моей orange pi 4 файла по 64 Мб. Расширим их по 256 Мб каждый. Воспользуемся утилитой zramctl.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
sudo su # все команды можно выполнить только под root! swapoff /dev/zram1 zramctl --reset /dev/zram1 zramctl --find --size 256M mkswap /dev/zram1 swapon /dev/zram1 --priority 1 swapoff /dev/zram2 zramctl --reset /dev/zram2 zramctl --find --size 256M mkswap /dev/zram2 swapon /dev/zram2 --priority 2 swapoff /dev/zram3 zramctl --reset /dev/zram3 zramctl --find --size 256M mkswap /dev/zram3 swapon /dev/zram3 --priority 3 swapoff /dev/zram4 zramctl --reset /dev/zram4 zramctl --find --size 256M mkswap /dev/zram4 swapon /dev/zram4 --priority 4 swapon -s # Отобразим список своп файлов |
Результат:
1 2 3 4 5 |
Filename Type Size Used Priority /dev/zram1 partition 262140 136 1 /dev/zram2 partition 262140 0 2 /dev/zram3 partition 262140 0 3 /dev/zram4 partition 262140 203232 4 |