Kinerja Raspberry Pi: menambahkan ZRAM dan mengubah parameter kernel

Beberapa minggu yang lalu saya memposting Ulasan Pinebook Pro. Karena Raspberry Pi 4 juga berbasis ARM, beberapa optimasi yang disebutkan di artikel sebelumnya cukup cocok untuk itu. Saya ingin berbagi trik ini dan melihat apakah Anda mengalami peningkatan kinerja yang sama.

Setelah menginstal Raspberry Pi di Anda ruang server rumah Saya perhatikan bahwa pada saat kekurangan RAM, ia menjadi sangat tidak responsif dan bahkan terhenti. Untuk mengatasi masalah ini, saya menambahkan ZRAM dan membuat beberapa perubahan pada parameter kernel.

Mengaktifkan ZRAM di Raspberry Pi

Kinerja Raspberry Pi: menambahkan ZRAM dan mengubah parameter kernel

ZRAM membuat penyimpanan blok di RAM bernama /dev/zram0 (atau 1, 2, 3, dll.). Halaman-halaman yang ditulis di sana dikompresi dan disimpan dalam memori. Hal ini memungkinkan I/O yang sangat cepat dan juga mengosongkan memori melalui kompresi.

Raspberry Pi 4 hadir dengan RAM 1, 2, 4, atau 8 GB. Saya akan menggunakan model 1GB, jadi harap sesuaikan petunjuknya berdasarkan model Anda. Dengan ZRAM 1 GB, file swap default (lambat!) akan lebih jarang digunakan. Saya menggunakan skrip ini pertukaran zram untuk instalasi dan konfigurasi otomatis.

Instruksi disediakan di repositori yang ditautkan di atas. Instalasi:

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

Jika Anda ingin mengedit konfigurasi:

vi /etc/default/zram-swap

Selain itu, Anda dapat mengaktifkan ZRAM dengan menginstal zram-tools. Jika Anda menggunakan metode ini, pastikan untuk mengedit konfigurasinya dalam file /etc/default/zramswap, dan instal sekitar 1 GB ZRAM:

sudo apt install zram-tools

Setelah instalasi, Anda dapat melihat statistik penyimpanan ZRAM dengan perintah berikut:

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

Menambahkan parameter kernel untuk penggunaan ZRAM yang lebih baik

Sekarang mari kita perbaiki perilaku sistem ketika Raspberry Pi beralih ke swapping di saat-saat terakhir, yang sering kali menyebabkan macet. Mari tambahkan beberapa baris ke file /etc/sysctl.conf dan reboot.

Baris-baris ini 1) akan menunda kelelahan ingatan yang tak terhindarkan, meningkatkan tekanan pada cache kernel dan 2) mereka mulai bersiap menghadapi kelelahan ingatan lebih awal, memulai pertukaran terlebih dahulu. Namun akan jauh lebih efisien jika menukar memori terkompresi melalui ZRAM!

Berikut adalah baris yang perlu ditambahkan di akhir file /etc/sysctl.conf:

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

Kemudian kita reboot sistem atau aktifkan perubahannya dengan perintah berikut:

sudo sysctl --system

vm.vfs_cache_pressure=500 meningkatkan tekanan cache, yang meningkatkan kecenderungan kernel untuk mendapatkan kembali memori yang digunakan untuk menyimpan direktori cache dan mengindeks objek. Anda akan menggunakan lebih sedikit memori untuk jangka waktu yang lebih lama. Penurunan tajam dalam kinerja ditiadakan dengan pertukaran sebelumnya.

vm.swappiness = 100 meningkatkan parameter seberapa agresif kernel menukar halaman memori, karena kita menggunakan ZRAM terlebih dahulu.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - proses latar belakang akan mulai merekam segera setelah mencapai batas 1%, namun sistem tidak akan memaksa I/O sinkron hingga mencapai dirty_ratio sebesar 50%.

Keempat baris ini (bila digunakan dengan ZRAM) akan membantu meningkatkan kinerja jika Anda punya pasti RAM habis dan transisi ke swap dimulai, seperti milik saya. Mengetahui fakta ini, dan juga memperhitungkan kompresi memori di ZRAM sebanyak tiga kali, lebih baik memulai pertukaran ini terlebih dahulu.

Memberi tekanan pada cache akan membantu karena pada dasarnya kita memberi tahu kernel, "Hei, lihat, saya tidak punya memori tambahan untuk digunakan sebagai cache, jadi tolong hapus secepatnya dan hanya simpan memori yang paling sering digunakan/penting saja." data."

Bahkan dengan pengurangan caching, jika seiring waktu sebagian besar memori terpasang terisi, kernel akan memulai pertukaran oportunistik jauh lebih awal, sehingga CPU (kompresi) dan I/O swap tidak akan menunggu hingga menit terakhir dan menggunakan semua sumber daya sekaligus ketika itu sudah terlambat. ZRAM menggunakan sedikit CPU untuk kompresi, tetapi pada sebagian besar sistem dengan jumlah memori yang kecil, dampak kinerjanya jauh lebih kecil dibandingkan swap tanpa ZRAM.

Sebagai kesimpulan

Mari kita lihat kembali hasilnya:

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 di ZRAM hampir satu gigabyte data yang tidak terkompresi. Semuanya masuk ke ZRAM dan tidak ada yang masuk ke file halaman yang jauh lebih lambat. Coba sendiri pengaturan ini, ini berfungsi pada semua model Raspberry Pi. Sistem pembekuan saya yang tidak dapat digunakan telah berubah menjadi sistem yang fungsional dan stabil.

Dalam waktu dekat saya berharap dapat melanjutkan dan mengupdate artikel ini dengan beberapa hasil pengujian sistem sebelum dan sesudah instalasi ZRAM. Sekarang saya tidak punya waktu untuk ini. Sementara itu, silakan jalankan pengujian Anda sendiri dan beri tahu saya di komentar. Raspberry Pi 4 adalah monster dengan pengaturan ini. Menikmati!

Pada subjek:

Sumber: www.habr.com

Tambah komentar