Иҷрои 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 ва ғайра) месозад. Саҳифаҳои дар он ҷо навишташуда фишурда мешаванд ва дар хотира нигоҳ дошта мешаванд. Ин имкон медиҳад, ки вуруди хеле зуд ба баромад ва инчунин хотираро тавассути фишурда холӣ кунад.

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 фишори кэшро зиёд мекунад, ки тамоюли ядроро барои барқарор кардани хотирае, ки барои кэш директория ва объектҳои индекс истифода мешавад, зиёд мекунад. Шумо хотираи камтарро барои муддати тӯлонӣ истифода хоҳед бурд. Пастшавии якбораи кор бо ивазкунии қаблӣ рад карда мешавад.

vm.sappappiness = 100 параметрро зиёд мекунад, ки ядро ​​​​саҳифаҳои хотираро чӣ гуна ба таври хашмгин иваз мекунад, зеро мо аввал ZRAM-ро истифода мебарем.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - равандҳои пасзамина дарҳол пас аз расидан ба ҳадди 1% сабтро оғоз мекунанд, аммо система вуруди синхронро маҷбур намекунад, то он даме, ки он ба таносуби dirty_tio 50% расад.

Ин чор сатр (вақте ки бо ZRAM истифода мешавад) барои беҳтар кардани кор кӯмак хоҳад кард, агар шумо дошта бошед ногузир RAM тамом мешавад ва гузариш ба своп оғоз мешавад, мисли ман. Донистани ин далел ва инчунин бо назардошти фишурдани хотира дар ZRAM се маротиба, беҳтар аст, ки ин свопро пешакӣ оғоз кунед.

Фишор ба кэш кӯмак мекунад, зеро мо аслан ба ядро ​​мегӯем: "Ҳей, бубинед, ман ягон хотираи изофӣ надорам, ки барои кэш истифода барам, аз ин рӯ лутфан онро ҳарчи зудтар халос кунед ва танҳо чизи аз ҳама бештар истифодашаванда/муҳимро захира кунед. маълумот."

Ҳатто ҳангоми кам кардани кэш, агар бо мурури замон қисми зиёди хотираи насбшуда ишғол шавад, ядро ​​​​свопинги оппортунистиро хеле пештар оғоз мекунад, то CPU (фишурдашавӣ) ва своп I/O то дақиқаи охирин интизор нашаванд ва ҳама захираҳоро якбора истифода баранд. хеле дер аст. ZRAM барои фишурдасозии CPU каме 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 ҳайвони ваҳшӣ бо ин танзимот аст. Баҳра баред!

Ба мавзӯи:

Манбаъ: will.com

Илова Эзоҳ