Raspberry Pi өнімділігі: ZRAM қосу және ядро ​​параметрлерін өзгерту

Бір-екі апта бұрын мен жарияладым Pinebook Pro шолуы. Raspberry Pi 4 де ARM негізіндегі болғандықтан, алдыңғы мақалада айтылған кейбір оңтайландырулар оған өте қолайлы. Мен осы трюктерді бөліскім келеді және сізде бірдей өнімділік жақсартулары бар-жоғын білгім келеді.

Raspberry Pi құрылғысын орнатқаннан кейін үй сервер бөлмесі ЖЖҚ тапшылығы кезінде ол өте жауапсыз болып, тіпті қатып қалғанын байқадым. Бұл мәселені шешу үшін мен ZRAM қостым және ядро ​​параметрлеріне бірнеше өзгертулер енгіздім.

Raspberry Pi жүйесінде ZRAM белсендіру

Raspberry Pi өнімділігі: ZRAM қосу және ядро ​​параметрлерін өзгерту

ZRAM ЖЖҚ-да /dev/zram0 (немесе 1, 2, 3, т.б.) деп аталатын блок қоймасын жасайды. Онда жазылған беттер қысылып, жадта сақталады. Бұл өте жылдам енгізу/шығару мүмкіндігін береді, сонымен қатар қысу арқылы жадты босатады.

Raspberry Pi 4 1, 2, 4 немесе 8 ГБ жедел жадымен келеді. Мен 1 ГБ үлгісін қолданатын боламын, сондықтан үлгіге негізделген нұсқауларды реттеңіз. 1 ГБ ZRAM көмегімен әдепкі своп файлы (баяу!) азырақ пайдаланылады. Мен бұл сценарийді қолдандым 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 кэш қысымын арттырады, бұл ядроның каталог пен индекс нысандарын кэштеу үшін пайдаланылатын жадты қалпына келтіруге бейімділігін арттырады. Ұзақ уақыт бойы жадты аз пайдаланасыз. Өнімділіктің күрт төмендеуі ертерек ауыстыру арқылы жоққа шығарылады.

қуаттылық = 100 ядроның жад беттерін қаншалықты агрессивті ауыстыратыны параметрін арттырады, өйткені біз алдымен ZRAM қолданамыз.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - фондық процестер 1% шегіне жеткенде бірден жазуды бастайды, бірақ жүйе 50% кір_қатынасына жеткенше синхронды енгізу/шығаруды мәжбүрлемейді.

Бұл төрт жол (ZRAM бірге пайдаланылғанда) егер бар болса, өнімділікті жақсартуға көмектеседі сөзсіз ЖЖҚ таусылады және мен сияқты свопқа көшу басталады. Бұл фактіні біле отырып, сонымен қатар ZRAM жадының үш есе қысылуын ескере отырып, бұл свопты алдын ала бастаған дұрыс.

Кэшке қысым жасау көмектеседі, себебі біз ядроға: «Ей, қараңызшы, менде кэш үшін пайдалану үшін қосымша жад жоқ, сондықтан оны тез арада алып тастаңыз және тек ең жиі қолданылатын/маңыздысын сақтаңыз. деректер».

Тіпті қысқартылған кэштеу кезінде, егер уақыт өте орнатылған жадтың көп бөлігі бос болса, ядро ​​​​оппортунистік ауыстыруды әлдеқайда ертерек бастайды, осылайша CPU (қысу) және своп енгізу/шығару соңғы минутқа дейін күтпейді және барлық ресурстарды бір уақытта пайдаланады. тым кеш. ZRAM қысу үшін азғантай орталық процессорды пайдаланады, бірақ жад көлемі аз жүйелердің көпшілігінде ол 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

ZRAM ішіндегі 264448 бір гигабайтқа жуық қысылмаған деректер. Барлығы ZRAM-ге өтті және әлдеқайда баяу бет файлына ештеңе өтпеді. Бұл параметрлерді өзіңіз қолданып көріңіз, олар барлық Raspberry Pi үлгілерінде жұмыс істейді. Менің жарамсыз, мұздату жүйесі функционалды және тұрақты жүйеге айналды.

Жақын арада мен бұл мақаланы ZRAM орнатқанға дейін және орнатқаннан кейін жүйені сынаудың кейбір нәтижелерімен жалғастырып, жаңартамын деп үміттенемін. Қазір менің бұған уақытым жоқ. Әзірше, өз сынақтарыңызды орындап, түсініктемелерде маған хабарлаңыз. Raspberry Pi 4 - бұл параметрлері бар аң. Ләззат алыңыз!

Тақырып бойынша:

Ақпарат көзі: www.habr.com

пікір қалдыру