ื‘ื™ืฆื•ืขื™ Raspberry Pi: ื”ื•ืกืคืช ZRAM ื•ืฉื™ื ื•ื™ ืคืจืžื˜ืจื™ ืœื™ื‘ื”

ืœืคื ื™ ืฉื‘ื•ืขื™ื™ื ืคืจืกืžืชื™ ืกืงื™ืจืช Pinebook Pro. ืžื›ื™ื•ื•ืŸ ืฉื’ื Raspberry Pi 4 ืžื‘ื•ืกืก ืขืœ ARM, ื—ืœืง ืžื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉื”ื•ื–ื›ืจื• ื‘ืžืืžืจ ื”ืงื•ื“ื ืžืชืื™ืžื•ืช ืœื• ืœืžื“ื™. ืื ื™ ืจื•ืฆื” ืœืฉืชืฃ ืืช ื”ื˜ืจื™ืงื™ื ื”ืืœื” ื•ืœืจืื•ืช ืื ืืชื” ื—ื•ื•ื” ืืช ืื•ืชื ืฉื™ืคื•ืจื™ื ื‘ื‘ื™ืฆื•ืขื™ื.

ืœืื—ืจ ื”ืชืงื ืช ื”-Raspberry Pi ืฉืœืš ื—ื“ืจ ืฉืจืชื™ื ื‘ื™ืชื™ ืฉืžืชื™ ืœื‘ ืฉื‘ืจื’ืขื™ื ืฉืœ ืžื—ืกื•ืจ ื‘-RAM ื”ื•ื ื”ืคืš ืžืื•ื“ ืœื ืžื’ื™ื‘ ื•ืืคื™ืœื• ืงืคื. ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•, ื”ื•ืกืคืชื™ ZRAM ื•ืขืจื›ืชื™ ื›ืžื” ืฉื™ื ื•ื™ื™ื ื‘ืคืจืžื˜ืจื™ ื”ืœื™ื‘ื”.

ื”ืคืขืœืช ZRAM ื‘-Raspberry Pi

ื‘ื™ืฆื•ืขื™ Raspberry Pi: ื”ื•ืกืคืช ZRAM ื•ืฉื™ื ื•ื™ ืคืจืžื˜ืจื™ ืœื™ื‘ื”

ZRAM ื™ื•ืฆืจ ืื—ืกื•ืŸ ื‘ืœื•ืง ื‘-RAM ื‘ืฉื /dev/zram0 (ืื• 1, 2, 3 ื•ื›ื•'). ื”ื“ืคื™ื ื”ื›ืชื•ื‘ื™ื ืฉื ื ื“ื—ืกื™ื ื•ืžืื•ื—ืกื ื™ื ื‘ื–ื™ื›ืจื•ืŸ. ื–ื” ืžืืคืฉืจ I/O ืžื”ื™ืจ ืžืื•ื“ ื•ื’ื ืžืฉื—ืจืจ ื–ื™ื›ืจื•ืŸ ื‘ืืžืฆืขื•ืช ื“ื—ื™ืกื”.

ื”-Raspberry Pi 4 ืžื’ื™ืข ืขื 1, 2, 4 ืื• 8 GB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM. ืื ื™ ืืฉืชืžืฉ ื‘ื“ื’ื ืฉืœ 1GB, ืื– ืื ื ื”ืชืื ืืช ื”ื”ื•ืจืื•ืช ื‘ื”ืชืื ืœื“ื’ื ืฉืœืš. ืขื 1 GB ZRAM, ืงื•ื‘ืฅ ื”ื”ื—ืœืคื” ื”ืžื•ื’ื“ืจ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ (ืื™ื˜ื™!) ื™ืฉืžืฉ ื‘ืชื“ื™ืจื•ืช ื ืžื•ื›ื” ื™ื•ืชืจ. ื”ืฉืชืžืฉืชื™ ื‘ืกืงืจื™ืคื˜ ื”ื–ื” zram-swap ืœื”ืชืงื ื” ื•ืชืฆื•ืจื” ืื•ื˜ื•ืžื˜ื™ืช.

ื”ื•ืจืื•ืช ืžืกื•ืคืงื•ืช ื‘ืžืื’ืจ ื”ืžืงื•ืฉืจ ืœืขื™ืœ. ื”ึทืชืงึธื ึธื”:

git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh

ืื ืืชื” ืจื•ืฆื” ืœืขืจื•ืš ืืช ื”ืชืฆื•ืจื”:

vi /etc/default/zram-swap

ื‘ื ื•ืกืฃ, ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืืช ZRAM ืขืœ ื™ื“ื™ ื”ืชืงื ื” zram-tools. ืื ืืชื” ืžืฉืชืžืฉ ื‘ืฉื™ื˜ื” ื–ื•, ื”ืงืคื“ ืœืขืจื•ืš ืืช ื”ืชืฆื•ืจื” ื‘ืงื•ื‘ืฅ /etc/default/zramswap, ื•ื”ืชืงืŸ ื›-1 GB ZRAM:

sudo apt install zram-tools

ืœืื—ืจ ื”ื”ืชืงื ื”, ืชื•ื›ืœ ืœื”ืฆื™ื’ ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืฉืœ ืื—ืกื•ืŸ ZRAM ืขื ื”ืคืงื•ื“ื” ื”ื‘ืื”:

sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/var/swap                               file		102396	0	-2
/dev/zram0                              partition	1185368	265472	5
pi@raspberrypi:~ $

ื”ื•ืกืคืช ืคืจืžื˜ืจื™ ืœื™ื‘ื” ืœืฉื™ืžื•ืฉ ื˜ื•ื‘ ื™ื•ืชืจ ื‘-ZRAM

ืขื›ืฉื™ื• ื‘ื•ืื• ื ืชืงืŸ ืืช ื”ืชื ื”ื’ื•ืช ื”ืžืขืจื›ืช ื›ืืฉืจ ื”-Raspberry Pi ืขื•ื‘ืจ ืœื”ื—ืœืคื” ื‘ืจื’ืข ื”ืื—ืจื•ืŸ, ืžื” ืฉืžื•ื‘ื™ืœ ืœืจื•ื‘ ืœื”ืงืคืื”. ื‘ื•ืื• ื ื•ืกื™ืฃ ื›ืžื” ืฉื•ืจื•ืช ืœืงื•ื‘ืฅ /etc/sysctl.conf ื•ืืชื—ื•ืœ ืžื—ื“ืฉ.

ืฉื•ืจื•ืช ืืœื” 1) ื™ืขื›ื‘ ืืช ื”ืชืฉื™ืฉื•ืช ื”ื‘ืœืชื™ ื ืžื ืขืช ืฉืœ ื”ื–ื™ื›ืจื•ืŸ, ื”ื’ื“ืœืช ื”ืœื—ืฅ ืขืœ ืžื˜ืžื•ืŸ ื”ืœื™ื‘ื” ื•-2) ื”ื ืžืชื—ื™ืœื™ื ืœื”ืชื›ื•ื ืŸ ืœืชืฉื™ืฉื•ืช ื”ื–ื™ื›ืจื•ืŸ ืžื•ืงื“ื ื™ื•ืชืจ, ื™ื•ื–ื ื”ื—ืœืคื” ืžืจืืฉ. ืื‘ืœ ื–ื” ื™ื”ื™ื” ื”ืจื‘ื” ื™ื•ืชืจ ื™ืขื™ืœ ืœื”ื—ืœื™ืฃ ื–ื™ื›ืจื•ืŸ ื“ื—ื•ืก ื“ืจืš ZRAM!

ืœื”ืœืŸ ื”ืฉื•ืจื•ืช ืœื”ื•ืกืคื” ื‘ืกื•ืฃ ื”ืงื•ื‘ืฅ /etc/sysctl.conf:

vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50

ืœืื—ืจ ืžื›ืŸ ืื ื• ืžืืชื—ืœื™ื ืืช ื”ืžืขืจื›ืช ืื• ืžืคืขื™ืœื™ื ืืช ื”ืฉื™ื ื•ื™ื™ื ื‘ืคืงื•ื“ื” ื”ื‘ืื”:

sudo sysctl --system

vm.vfs_cache_pressure=500 ืžื’ื‘ื™ืจ ืืช ืœื—ืฅ ื”ืžื˜ืžื•ืŸ, ืžื” ืฉืžื’ื‘ื™ืจ ืืช ื”ื ื˜ื™ื™ื” ืฉืœ ื”ืœื™ื‘ื” ืœื“ืจื•ืฉ ืžื—ื“ืฉ ื–ื™ื›ืจื•ืŸ ื”ืžืฉืžืฉ ืœืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ืฉืœ ืกืคืจื™ื•ืช ื•ืื™ื ื“ืงืก ืื•ื‘ื™ื™ืงื˜ื™ื. ืืชื” ืชืฉืชืžืฉ ื‘ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ ืœืคืจืง ื–ืžืŸ ืืจื•ืš ื™ื•ืชืจ. ื”ื™ืจื™ื“ื” ื”ื—ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื ืžื‘ื•ื˜ืœืช ืขืœ ื™ื“ื™ ื”ื—ืœืคื” ืžื•ืงื“ืžืช ื™ื•ืชืจ.

vm.swappiness = 100 ืžื’ื“ื™ืœ ืืช ื”ืคืจืžื˜ืจ ื‘ืื™ื–ื• ืื’ืจืกื™ื‘ื™ื•ืช ื”ืงืจื ืœ ื™ื—ืœื™ืฃ ื“ืคื™ ื–ื™ื›ืจื•ืŸ, ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืžืฉืชืžืฉื™ื ืชื—ื™ืœื” ื‘-ZRAM.

vm.dirty_background_ratio=1 ื•-vm.dirty_ratio=50 - ืชื”ืœื™ื›ื™ ืจืงืข ื™ืชื—ื™ืœื• ืœื”ืงืœื™ื˜ ืžื™ื“ ืขื ื”ื’ืขื” ืœืžื’ื‘ืœื” ืฉืœ 1%, ืืš ื”ืžืขืจื›ืช ืœื ืชื›ืจื™ื— ืงืœื˜/ืคืœื˜ ืกื™ื ื›ืจื•ื ื™ ืขื“ ืฉืชื’ื™ืข ืœ-dirty_ratio ืฉืœ 50%.

ืืจื‘ืขืช ื”ืงื•ื•ื™ื ื”ืœืœื• (ื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘ื”ื ืขื ZRAM) ื™ืขื–ืจื• ืœืฉืคืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื ืื ื™ืฉ ืœืš ื‘ืื•ืคืŸ ื‘ืœืชื™ ื ืžื ืข ื–ื™ื›ืจื•ืŸ ื”-RAM ื ื’ืžืจ ื•ื”ืžืขื‘ืจ ืœื”ื—ืœืคื” ืžืชื—ื™ืœ, ื›ืžื• ืฉืœื™. ื‘ื”ื›ืจืช ืขื•ื‘ื“ื” ื–ื•, ื•ื’ื ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ื“ื—ื™ืกืช ื”ื–ื™ื›ืจื•ืŸ ื‘-ZRAM ืคื™ ืฉืœื•ืฉ, ืขื“ื™ืฃ ืœื”ืชื—ื™ืœ ืืช ื”ื”ื—ืœืคื” ื”ื–ื• ืžืจืืฉ.

ื”ืคืขืœืช ืœื—ืฅ ืขืœ ื”ืžื˜ืžื•ืŸ ืขื•ื–ืจืช ื›ื™ ืื ื—ื ื• ื‘ืขืฆื ืื•ืžืจื™ื ืœืงืจื ืœ, "ื”ื™ื™, ืชืจืื”, ืื™ืŸ ืœื™ ืฉื•ื ื–ื™ื›ืจื•ืŸ ื ื•ืกืฃ ืœืฉื™ืžื•ืฉ ืขื‘ื•ืจ ื”ืžื˜ืžื•ืŸ, ืื– ื‘ื‘ืงืฉื” ืชื™ืคื˜ืจ ืžืžื ื• ื‘ื”ืงื“ื ื”ืืคืฉืจื™ ื•ืื—ืกืŸ ืจืง ืืช ื”ื ืคื•ืฆื™ื/ื”ื—ืฉื•ื‘ื™ื ื‘ื™ื•ืชืจ. ื ืชื•ื ื™ื."

ืืคื™ืœื• ืขื ืฉืžื™ืจื” ืžื•ืคื—ืชืช ื‘ืžื˜ืžื•ืŸ, ืื ืœืื•ืจืš ื–ืžืŸ ืจื•ื‘ ื”ื–ื™ื›ืจื•ืŸ ื”ืžื•ืชืงืŸ ืชืคื•ืก, ื”ืœื™ื‘ื” ืชืชื—ื™ืœ ื”ื—ืœืคื” ืื•ืคื•ืจื˜ื•ื ื™ืกื˜ื™ืช ื”ืจื‘ื” ื™ื•ืชืจ ืžื•ืงื“ื, ื›ืš ืฉืžืขื‘ื“ (ื“ื—ื™ืกื”) ื•-Swap I/O ืœื ื™ืžืชื™ื ื• ืœืจื’ืข ื”ืื—ืจื•ืŸ ื•ื™ืฉืชืžืฉื• ื‘ื›ืœ ื”ืžืฉืื‘ื™ื ื‘ื‘ืช ืื—ืช ื›ืืฉืจ ื–ื” ืžืื•ื—ืจ ืžื™ื“ื™. ZRAM ืžืฉืชืžืฉ ื‘ืžืขื˜ CPU ืœื“ื—ื™ืกื”, ืื‘ืœ ื‘ืจื•ื‘ ื”ืžืขืจื›ื•ืช ืขื ื›ืžื•ื™ื•ืช ืงื˜ื ื•ืช ืฉืœ ื–ื™ื›ืจื•ืŸ ื™ืฉ ืœื–ื” ื”ืจื‘ื” ืคื—ื•ืช ื”ืฉืคืขื” ืขืœ ื”ื‘ื™ืฆื•ืขื™ื ืžืืฉืจ ื”ื—ืœืคื” ืœืœื ZRAM.

ืœืกื™ื›ื•ื

ื‘ื•ืื• ื ืกืชื›ืœ ืฉื•ื‘ ืขืœ ื”ืชื•ืฆืื”:

pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi

pi@raspberrypi:~ $ sudo cat /proc/swaps 
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5

264448 ื‘-ZRAM ื”ื•ื ื›ืžืขื˜ ื’ื™ื’ื”-ื‘ื™ื™ื˜ ืื—ื“ ืฉืœ ื ืชื•ื ื™ื ืœื ื“ื—ื•ืกื™ื. ื”ื›ืœ ื”ืœืš ืœ-ZRAM ื•ืฉื•ื ื“ื‘ืจ ืœื ื”ืœืš ืœืงื•ื‘ืฅ ื”ืขืžื•ื“ื™ื ื”ืื™ื˜ื™ ื‘ื”ืจื‘ื”. ื ืกื” ืืช ื”ื”ื’ื“ืจื•ืช ื”ืืœื” ื‘ืขืฆืžืš, ื”ืŸ ืขื•ื‘ื“ื•ืช ืขืœ ื›ืœ ื“ื’ืžื™ Raspberry Pi. ืžืขืจื›ืช ื”ื”ืงืคืื” ื”ื‘ืœืชื™ ืฉืžื™ืฉื” ืฉืœื™ ื”ืคื›ื” ืœืคื•ื ืงืฆื™ื•ื ืœื™ืช ื•ื™ืฆื™ื‘ื”.

ื‘ืขืชื™ื“ ื”ืงืจื•ื‘, ืื ื™ ืžืงื•ื•ื” ืœื”ืžืฉื™ืš ื•ืœืขื“ื›ืŸ ืžืืžืจ ื–ื” ืขื ื›ืžื” ืชื•ืฆืื•ืช ืžื‘ื“ื™ืงืช ื”ืžืขืจื›ืช ืœืคื ื™ ื•ืื—ืจื™ ื”ืชืงื ืช ZRAM. ืขื›ืฉื™ื• ืคืฉื•ื˜ ืื™ืŸ ืœื™ ื–ืžืŸ ืœื–ื”. ื‘ื™ื ืชื™ื™ื, ืืชื ืžื•ื–ืžื ื™ื ืœื”ืจื™ืฅ ื‘ื“ื™ืงื•ืช ืžืฉืœื›ื ื•ืœื”ื•ื“ื™ืข โ€‹โ€‹ืœื™ ื‘ืชื’ื•ื‘ื•ืช. ื”-Raspberry Pi 4 ื”ื•ื ื—ื™ื” ืขื ื”ื”ื’ื“ืจื•ืช ื”ืืœื”. ืชื”ื ื”!

ืขืœ ื”ื ื•ืฉื:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”