Кілька тижнів тому я опублікував
Після встановлення 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