Пару тыдняў таму я апублікаваў
Пасля ўстаноўкі Raspberry Pi у сваю
Актывацыя ZRAM на Raspberry Pi
Raspberry Pi 4 пастаўляецца з 1, 2, 4 ці 8 ГБ аператыўнай памяці. Я буду выкарыстоўваць мадэль 1 ГБ, таму адкарэктуйце інструкцыю ў залежнасці ад сваёй мадэлі. З 1 ГБ ZRAM дэфолтны файл падпампоўкі (павольны!) будзе выкарыстоўвацца радзей. Я выкарыстоўваў такі скрыпт
Інструкцыі прыводзяцца ў рэпазітары па спасылцы вышэй. Ўстаноўка:
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 ГБ 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) дапамогуць палепшыць прадукцыйнасць у тым выпадку, калі ў вас непазбежна заканчваецца аператыўная памяць і пачынаецца пераход на падпампоўку, як у мяне. Ведаючы аб гэтым факце, а таксама з улікам сціску памяці ў ZRAM у тры разы лепш пачаць гэты свопінг загадзя.
Ціск на кэш дапамагае, таму што мы фактычна які гаворыцца ядру: «Гэй, паслухай, у мяне няма дадатковай памяці, каб выкарыстаць яе для кэша, таму, калі ласка, пазбався ад яго як мага хутчэй і захоўвай толькі найболей часта выкарыстоўваныя/важныя дадзеныя».
Нават пры памяншэнні кэшавання, калі з часам вялікая частка ўсталяванай памяці будзе занятая, ядро пачне апартуністычны своп значна раней, так што працэсар (сціск) і ўвод/вывад падпампоўкі не будуць цягнуць да апошняга і задзейнічаць усе рэсурсы адразу, калі ўжо занадта позна. 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 проста звер з такімі наладамі. Атрымлівайце асалоду!
Па тэме:
Крыніца: habr.com