Raspberry Pi ishlashi: ZRAM qo'shish va yadro parametrlarini o'zgartirish

Bir necha hafta oldin men e'lon qildim Pinebook Pro sharhi. Raspberry Pi 4 ham ARM-ga asoslanganligi sababli, avvalgi maqolada keltirilgan ba'zi optimallashtirishlar unga juda mos keladi. Men ushbu fokuslarni baham ko'rmoqchiman va siz ham xuddi shunday ishlash yaxshilanishlarini boshdan kechirasizmi yoki yo'qligini ko'rmoqchiman.

Raspberry Pi-ni o'rnatganingizdan so'ng uy server xonasi Men operativ xotira tanqisligi paytida u juda sezgir bo'lib qolganini va hatto qotib qolganini payqadim. Ushbu muammoni hal qilish uchun men ZRAM ni qo'shdim va yadro parametrlariga bir nechta o'zgarishlar kiritdim.

Raspberry Pi-da ZRAM-ni faollashtirish

Raspberry Pi ishlashi: ZRAM qo'shish va yadro parametrlarini o'zgartirish

ZRAM operativ xotirada /dev/zram0 (yoki 1, 2, 3, va hokazo) nomli blokli xotirani yaratadi. U yerda yozilgan sahifalar siqilib, xotirada saqlanadi. Bu juda tez kiritish/chiqarish imkonini beradi hamda siqilish orqali xotirani bo'shatadi.

Raspberry Pi 4 1, 2, 4 yoki 8 Gb tezkor xotiraga ega. Men 1 GB hajmli modeldan foydalanaman, shuning uchun koβ€˜rsatmalarni modelingizga qarab sozlang. 1 GB ZRAM bilan standart almashtirish fayli (sekin!) kamroq ishlatiladi. Men ushbu skriptdan foydalandim zram-almashtirish o'rnatish va avtomatik sozlash uchun.

Ko'rsatmalar yuqorida bog'langan omborda keltirilgan. O'rnatish:

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

Agar siz konfiguratsiyani tahrir qilmoqchi bo'lsangiz:

vi /etc/default/zram-swap

Bundan tashqari, ZRAM-ni o'rnatish orqali faollashtirishingiz mumkin zram-tools. Agar siz ushbu usuldan foydalansangiz, konfiguratsiyani tahrirlashni unutmang faylda /etc/default/zramswap, va taxminan 1 GB ZRAM o'rnating:

sudo apt install zram-tools

O'rnatishdan so'ng siz ZRAM xotirasi statistikasini quyidagi buyruq bilan ko'rishingiz mumkin:

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

ZRAM-dan yaxshiroq foydalanish uchun yadro parametrlarini qo'shish

Endi Raspberry Pi so'nggi daqiqada almashtirishga o'tganda tizimning xatti-harakatlarini tuzatamiz, bu ko'pincha muzlatishga olib keladi. Keling, faylga bir necha qator qo'shamiz /etc/sysctl.conf va qayta ishga tushiring.

Ushbu qatorlar 1) xotiraning muqarrar charchashini kechiktiradi, yadro keshidagi bosimni oshirish va 2) ular xotiraning charchashiga oldindan tayyorgarlik ko'rishni boshlaydilar, oldindan almashtirishni boshlash. Ammo siqilgan xotirani ZRAM orqali almashtirish ancha samarali bo'ladi!

Bu erda faylning oxiriga qo'shiladigan qatorlar /etc/sysctl.conf:

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

Keyin biz tizimni qayta ishga tushiramiz yoki quyidagi buyruq bilan o'zgarishlarni faollashtiramiz:

sudo sysctl --system

vm.vfs_cache_pressure=500 kesh bosimini oshiradi, bu yadroning katalog va indeks ob'ektlarini keshlash uchun ishlatiladigan xotirani qayta tiklashga moyilligini oshiradi. Siz uzoqroq vaqt davomida kamroq xotiradan foydalanasiz. Ishlashning keskin pasayishi oldingi almashtirish orqali inkor etiladi.

vm.svappiness = 100 yadro xotira sahifalarini qanchalik agressiv ravishda almashtirish parametrini oshiradi, chunki biz birinchi navbatda ZRAM dan foydalanamiz.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - fon jarayonlari 1% chegarasiga yetgandan so'ng darhol yozib olishni boshlaydi, lekin tizim ifloslanish nisbati 50% ga yetguncha sinxron kiritish-chiqarishni majburlamaydi.

Agar mavjud bo'lsa, ushbu to'rtta chiziq (ZRAM bilan foydalanilganda) ishlashni yaxshilashga yordam beradi muqarrar ravishda RAM tugaydi va men kabi almashtirishga o'tish boshlanadi. Bu haqiqatni bilib, shuningdek, ZRAM-da xotirani uch marta siqishni hisobga olgan holda, ushbu almashtirishni oldindan boshlash yaxshiroqdir.

Keshga bosim o'tkazish yordam beradi, chunki biz yadroga aytamiz: "Hey, qarang, menda kesh uchun ishlatish uchun qo'shimcha xotira yo'q, shuning uchun uni tezroq olib tashlang va faqat eng tez-tez ishlatiladigan/muhimini saqlang. ma'lumotlar."

Qisqartirilgan keshlash bilan ham, agar vaqt o'tishi bilan o'rnatilgan xotiraning ko'p qismi ishg'ol qilinsa, yadro ancha oldin opportunistik almashtirishni boshlaydi, shuning uchun protsessor (siqish) va almashtirish kiritish-chiqarish oxirgi daqiqagacha kutmaydi va bir vaqtning o'zida barcha resurslardan foydalanadi. juda kech. ZRAM siqish uchun ozgina protsessordan foydalanadi, lekin kichik hajmdagi xotiraga ega bo'lgan ko'pgina tizimlarda ZRAMsiz almashtirishga qaraganda unumdorlikka kamroq ta'sir qiladi.

Xulosa

Natijaga yana qaraylik:

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-dagi 264448 deyarli bir gigabayt siqilmagan ma'lumotdir. Hamma narsa ZRAM-ga o'tdi va hech narsa juda sekinroq sahifa fayliga bormadi. Ushbu sozlamalarni o'zingiz sinab ko'ring, ular barcha Raspberry Pi modellarida ishlaydi. Mening yaroqsiz, muzlatish tizimi funktsional va barqaror tizimga aylandi.

Yaqin kelajakda men ushbu maqolani ZRAM-ni o'rnatishdan oldin va keyin tizimni sinovdan o'tkazishning ba'zi natijalari bilan davom ettiraman va yangilayman deb umid qilaman. Endi bunga vaqtim yo'q. Ayni paytda, o'z testlaringizni o'tkazing va sharhlarda menga xabar bering. Raspberry Pi 4 bu sozlamalarga ega hayvondir. Rohatlaning!

Mavzu bo'yicha:

Manba: www.habr.com

a Izoh qo'shish