Raspberry Pi performansı: ZRAM əlavə etmək və nüvə parametrlərini dəyişdirmək

Bir neçə həftə əvvəl yazmışdım Pinebook Pro icmalı. Raspberry Pi 4 də ARM əsaslı olduğundan, əvvəlki məqalədə qeyd olunan bəzi optimallaşdırmalar onun üçün olduqca uyğundur. Bu fəndləri bölüşmək və eyni performans təkmilləşdirmələrini yaşayıb-yaşamayacağınızı görmək istərdim.

Raspberry Pi-ni quraşdırdıqdan sonra ev server otağı RAM çatışmazlığı anlarında çox reaksiya vermədiyini və hətta donduğunu gördüm. Bu problemi həll etmək üçün ZRAM əlavə etdim və kernel parametrlərində bir neçə dəyişiklik etdim.

Raspberry Pi-də ZRAM-ın aktivləşdirilməsi

Raspberry Pi performansı: ZRAM əlavə etmək və nüvə parametrlərini dəyişdirmək

ZRAM RAM-da /dev/zram0 (və ya 1, 2, 3 və s.) adlı blok yaddaşı yaradır. Orada yazılan səhifələr sıxılır və yaddaşda saxlanılır. Bu, çox sürətli I/O-ya imkan verir və həmçinin sıxılma vasitəsilə yaddaşı boşaltır.

Raspberry Pi 4 1, 2, 4 və ya 8 GB RAM ilə gəlir. Mən 1GB modelindən istifadə edəcəyəm, ona görə də modelinizə əsasən təlimatları tənzimləyin. 1 GB ZRAM ilə standart dəyişdirmə faylı (yavaş!) daha az istifadə ediləcək. Bu skriptdən istifadə etdim zram-mübadilə quraşdırma və avtomatik konfiqurasiya üçün.

Təlimatlar yuxarıda əlaqələndirilmiş depoda verilir. Quraşdırma:

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

Konfiqurasiyanı redaktə etmək istəyirsinizsə:

vi /etc/default/zram-swap

Bundan əlavə, ZRAM-ı quraşdıraraq aktivləşdirə bilərsiniz zram-tools. Bu üsuldan istifadə edirsinizsə, konfiqurasiyanı redaktə etməyi unutmayın faylda /etc/default/zramswap, və təxminən 1 GB ZRAM quraşdırın:

sudo apt install zram-tools

Quraşdırıldıqdan sonra ZRAM saxlama statistikasına aşağıdakı əmrlə baxa bilərsiniz:

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 daha yaxşı istifadə üçün kernel parametrlərinin əlavə edilməsi

İndi Raspberry Pi son anda dəyişdirməyə keçdikdə sistemin davranışını düzəldək, bu da tez-tez donmalara səbəb olur. Fayla bir neçə sətir əlavə edək /etc/sysctl.conf və yenidən başladın.

Bu sətirlər 1) yaddaşın qaçılmaz tükənməsini gecikdirəcək, nüvə önbelleğine təzyiqin artırılması və 2) yaddaş tükənməsinə daha erkən hazırlaşmağa başlayırlar, əvvəlcədən dəyişdirməyə başlamaq. Lakin sıxılmış yaddaşı ZRAM vasitəsilə dəyişdirmək daha səmərəli olacaq!

Budur faylın sonuna əlavə ediləcək sətirlər /etc/sysctl.conf:

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

Sonra sistemi yenidən işə salırıq və ya aşağıdakı əmrlə dəyişiklikləri aktivləşdiririk:

sudo sysctl --system

vm.vfs_cache_pressure=500 keş təzyiqini artırır ki, bu da nüvənin kataloq və indeks obyektlərini keşləmək üçün istifadə olunan yaddaşı bərpa etmək meylini artırır. Daha uzun müddət daha az yaddaş istifadə edəcəksiniz. Performansın kəskin azalması əvvəlki dəyişdirmə ilə rədd edilir.

vm.swappiness = 100 ilk olaraq ZRAM-dan istifadə etdiyimiz üçün nüvənin yaddaş səhifələrini necə aqressiv şəkildə dəyişdirəcəyi parametrini artırır.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - fon prosesləri 1% həddinə çatdıqdan sonra dərhal qeyd etməyə başlayacaq, lakin sistem 50% çirkli nisbətə çatana qədər sinxron giriş/çıxışı məcbur etməyəcək.

Bu dörd xətt (ZRAM ilə istifadə edildikdə) varsa, performansı yaxşılaşdırmağa kömək edəcək istər -istəməz RAM tükənir və mənim kimi dəyişdirməyə keçid başlayır. Bu faktı bilərək, həmçinin ZRAM-da yaddaşın üç dəfə sıxılmasını nəzərə alaraq, bu dəyişdirməni əvvəlcədən başlamaq daha yaxşıdır.

Keşə təzyiq göstərmək kömək edir, çünki biz mahiyyətcə nüvəyə deyirik: "Hey, baxın, mənim keş üçün istifadə etmək üçün əlavə yaddaşım yoxdur, ona görə də lütfən, onu tez bir zamanda silin və yalnız ən çox istifadə olunan/vacib olanı saxlayın. məlumatlar."

Azaldılmış keşləmə ilə belə, əgər zaman keçdikcə quraşdırılmış yaddaşın çox hissəsi işğal edilərsə, nüvə daha erkən fürsətçi dəyişdirməyə başlayacaq ki, CPU (sıxılma) və dəyişdirmə I/O son dəqiqəyə qədər gözləməyəcək və bütün resursları eyni anda istifadə edəcək. artıq gecdir. ZRAM sıxılma üçün bir az CPU istifadə edir, lakin kiçik həcmli yaddaşa malik əksər sistemlərdə ZRAM olmadan dəyişdirmə ilə müqayisədə performansa daha az təsir göstərir.

Nəticədə

Nəticəyə yenidən baxaq:

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-da 264448, demək olar ki, bir gigabayt sıxılmamış məlumatdır. Hər şey ZRAM-a getdi və heç bir şey daha yavaş səhifə faylına getmədi. Bu parametrləri özünüz sınayın, onlar bütün Raspberry Pi modellərində işləyir. İstifadəyə yararsız, dondurucu sistemim işlək və sabit bir sistemə çevrildi.

Yaxın gələcəkdə bu məqaləni ZRAM quraşdırmadan əvvəl və sonra sistemin sınaqdan keçirilməsinin bəzi nəticələri ilə davam etdirməyə və yeniləməyə ümid edirəm. İndi sadəcə buna vaxtım yoxdur. Bu arada, öz testlərinizi həyata keçirməkdən çekinmeyin və şərhlərdə mənə bildirin. Raspberry Pi 4 bu parametrlərə malik bir heyvandır. Zövq alın!

Mövzu haqqında:

Mənbə: www.habr.com

Добавить комментарий