Pagganap ng Raspberry Pi: pagdaragdag ng ZRAM at pagpapalit ng mga parameter ng kernel

A couple of weeks ago nag-post ako Pagsusuri ng Pinebook Pro. Dahil ang Raspberry Pi 4 ay nakabatay din sa ARM, ang ilan sa mga pag-optimize na binanggit sa nakaraang artikulo ay angkop para dito. Gusto kong ibahagi ang mga trick na ito at tingnan kung nakakaranas ka ng parehong mga pagpapabuti sa pagganap.

Pagkatapos i-install ang Raspberry Pi sa iyong silid ng server sa bahay Napansin ko na sa mga sandali ng kakulangan ng RAM ito ay naging napaka-unresponsive at kahit na nagyelo. Upang malutas ang problemang ito, idinagdag ko ang ZRAM at gumawa ng ilang mga pagbabago sa mga parameter ng kernel.

Ina-activate ang ZRAM sa Raspberry Pi

Pagganap ng Raspberry Pi: pagdaragdag ng ZRAM at pagpapalit ng mga parameter ng kernel

ZRAM lumilikha ng block storage sa RAM na pinangalanang /dev/zram0 (o 1, 2, 3, atbp.). Ang mga pahinang nakasulat doon ay na-compress at naka-imbak sa memorya. Nagbibigay-daan ito para sa napakabilis na I/O at nagpapalaya din ng memorya sa pamamagitan ng compression.

Ang Raspberry Pi 4 ay may kasamang 1, 2, 4, o 8 GB ng RAM. Gagamitin ko ang 1GB na modelo, kaya mangyaring ayusin ang mga tagubilin batay sa iyong modelo. Sa 1GB ZRAM, ang default na swap file (mabagal!) ay hindi gaanong gagamitin. Ginamit ko ang script na ito zram-swap para sa pag-install at awtomatikong pagsasaayos.

Ang mga tagubilin ay ibinigay sa imbakan na naka-link sa itaas. Pag-install:

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

Kung gusto mong i-edit ang config:

vi /etc/default/zram-swap

Bilang karagdagan, maaari mong i-activate ang ZRAM sa pamamagitan ng pag-install zram-tools. Kung gagamitin mo ang paraang ito, siguraduhing i-edit ang config sa file /etc/default/zramswap, at i-install ang tungkol sa 1 GB ZRAM:

sudo apt install zram-tools

Pagkatapos ng pag-install, maaari mong tingnan ang mga istatistika ng imbakan ng ZRAM gamit ang sumusunod na command:

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

Pagdaragdag ng mga parameter ng kernel para sa mas mahusay na paggamit ng ZRAM

Ngayon ayusin natin ang pag-uugali ng system kapag lumipat ang Raspberry Pi sa pagpapalit sa huling sandali, na kadalasang humahantong sa pag-freeze. Magdagdag tayo ng ilang linya sa file /etc/sysctl.conf at i-reboot.

Ang mga linyang ito 1) ay maaantala ang hindi maiiwasang pagkaubos ng memorya, pagtaas ng presyon sa kernel cache at 2) nagsisimula silang maghanda para sa memory exhaustion mas maaga, pagsisimula ng pagpapalit nang maaga. Ngunit magiging mas mahusay na magpalit ng naka-compress na memorya sa pamamagitan ng ZRAM!

Narito ang mga linyang idaragdag sa dulo ng file /etc/sysctl.conf:

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

Pagkatapos ay i-reboot namin ang system o i-activate ang mga pagbabago gamit ang sumusunod na command:

sudo sysctl --system

vm.vfs_cache_pressure=500 pinatataas ang presyon ng cache, na nagpapataas sa tendensya ng kernel na i-reclaim ang memorya na ginamit sa cache na direktoryo at mga index na bagay. Gagamitin mo ang mas kaunting memorya para sa mas mahabang panahon. Ang matalim na pagbaba sa pagganap ay tinatanggihan ng naunang pagpapalit.

vm. swappiness = 100 pinapataas ang parameter kung gaano ka-agresibo ang pagpapalit ng mga pahina ng memorya ng kernel, dahil ginagamit muna namin ang ZRAM.

vm.dirty_background_ratio=1 at vm.dirty_ratio=50 - Ang mga proseso sa background ay magsisimulang mag-record kaagad kapag naabot ang 1% na limitasyon, ngunit hindi pipilitin ng system ang kasabay na I/O hanggang umabot ito sa dirty_ratio na 50%.

Ang apat na linyang ito (kapag ginamit sa ZRAM) ay makakatulong na mapabuti ang pagganap kung mayroon ka hindi maiiwasan Ang RAM ay naubusan at ang paglipat sa swap ay nagsisimula, tulad ng sa akin. Alam ang katotohanang ito, at isinasaalang-alang din ang memory compression sa ZRAM ng tatlong beses, mas mahusay na simulan ang swap na ito nang maaga.

Ang paglalagay ng presyon sa cache ay nakakatulong dahil mahalagang sinasabi natin sa kernel, "Hoy, tingnan mo, wala akong anumang dagdag na memorya na magagamit para sa cache, kaya't mangyaring alisin ito sa lalong madaling panahon at iimbak lamang ang pinakamadalas na ginagamit/mahalaga. data."

Kahit na may pinababang pag-cache, kung sa paglipas ng panahon ang karamihan sa naka-install na memorya ay inookupahan, ang kernel ay magsisimula ng oportunistikong pagpapalit nang mas maaga, upang ang CPU (compression) at swap I/O ay hindi maghintay hanggang sa huling minuto at gamitin ang lahat ng mga mapagkukunan nang sabay-sabay kapag huli na. Gumagamit ang ZRAM ng kaunting CPU para sa compression, ngunit sa karamihan ng mga system na may maliit na halaga ng memorya ay mas mababa ang epekto nito sa pagganap kaysa sa swap na walang ZRAM.

Sa pagtatapos

Tingnan natin muli ang resulta:

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

Ang 264448 sa ZRAM ay halos isang gigabyte ng hindi naka-compress na data. Napunta ang lahat sa ZRAM at walang napunta sa mas mabagal na page file. Subukan ang mga setting na ito sa iyong sarili, gumagana ang mga ito sa lahat ng mga modelo ng Raspberry Pi. Ang aking hindi nagagamit, nagyeyelong sistema ay naging isang gumagana at matatag.

Sa malapit na hinaharap, inaasahan kong ipagpatuloy at i-update ang artikulong ito sa ilang mga resulta mula sa pagsubok sa system bago at pagkatapos i-install ang ZRAM. Ngayon lang ako walang oras para dito. Pansamantala, huwag mag-atubiling magpatakbo ng iyong sariling mga pagsubok at ipaalam sa akin sa mga komento. Ang Raspberry Pi 4 ay isang hayop na may ganitong mga setting. Enjoy!

Sa paksa:

Pinagmulan: www.habr.com

Magdagdag ng komento