ประสิทธิภาพของ Raspberry Pi: การเพิ่ม ZRAM และการเปลี่ยนพารามิเตอร์เคอร์เนล

สองสามสัปดาห์ที่ผ่านมาฉันโพสต์ รีวิวไพน์บุ๊คโปร. เนื่องจาก Raspberry Pi 4 นั้นใช้ ARM เช่นกัน การเพิ่มประสิทธิภาพบางอย่างที่กล่าวถึงในบทความก่อนหน้านี้จึงค่อนข้างเหมาะสมสำหรับมัน ฉันต้องการแชร์เคล็ดลับเหล่านี้และดูว่าคุณได้รับประสบการณ์การปรับปรุงประสิทธิภาพแบบเดียวกันหรือไม่

หลังจากติดตั้ง Raspberry Pi ในไฟล์ ห้องโฮมเซิร์ฟเวอร์ ฉันสังเกตเห็นว่าในช่วงเวลาที่ RAM ขาดแคลน มันไม่ตอบสนองมากและค้างด้วยซ้ำ เพื่อแก้ไขปัญหานี้ ฉันจึงเพิ่ม ZRAM และทำการเปลี่ยนแปลงพารามิเตอร์เคอร์เนลเล็กน้อย

การเปิดใช้งาน ZRAM บน Raspberry Pi

ประสิทธิภาพของ Raspberry Pi: การเพิ่ม ZRAM และการเปลี่ยนพารามิเตอร์เคอร์เนล

ซแรม สร้างที่เก็บข้อมูลบล็อกใน RAM ชื่อ /dev/zram0 (หรือ 1, 2, 3 ฯลฯ ) หน้าที่เขียนจะถูกบีบอัดและจัดเก็บไว้ในหน่วยความจำ ซึ่งช่วยให้ I/O รวดเร็วมาก และยังเพิ่มหน่วยความจำผ่านการบีบอัดอีกด้วย

Raspberry Pi 4 มาพร้อมกับ RAM ขนาด 1, 2, 4 หรือ 8 GB ฉันจะใช้รุ่น 1GB ดังนั้นโปรดปรับคำแนะนำตามรุ่นของคุณ ด้วย ZRAM ขนาด 1 GB ไฟล์สวอปเริ่มต้น (ช้า!) จะถูกนำมาใช้น้อยลง ฉันใช้สคริปต์นี้ zram-swap สำหรับการติดตั้งและการกำหนดค่าอัตโนมัติ

คำแนะนำมีอยู่ในพื้นที่เก็บข้อมูลที่ลิงก์ด้านบน การติดตั้ง:

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และติดตั้ง ZRAM ประมาณ 1 GB:

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.swappiness = 100 เพิ่มพารามิเตอร์ว่าเคอร์เนลจะสลับเพจหน่วยความจำรุนแรงเพียงใด เนื่องจากเราใช้ ZRAM ก่อน

vm.dirty_พื้นหลัง_ratio=1 & vm.dirty_ratio=50 - กระบวนการเบื้องหลังจะเริ่มบันทึกทันทีเมื่อถึงขีดจำกัด 1% แต่ระบบจะไม่บังคับซิงโครนัส I/O จนกว่าจะถึง Dirt_ratio ที่ 50%

สี่บรรทัดนี้ (เมื่อใช้กับ ZRAM) จะช่วยปรับปรุงประสิทธิภาพหากคุณมี อย่างหลีกเลี่ยงไม่ได้ RAM หมดลงและการเปลี่ยนไปใช้ Swap ก็เริ่มต้นขึ้นเหมือนกับของฉัน เมื่อทราบข้อเท็จจริงนี้และคำนึงถึงการบีบอัดหน่วยความจำใน ZRAM สามครั้งด้วยจะเป็นการดีกว่าที่จะเริ่มการแลกเปลี่ยนนี้ล่วงหน้า

การกดดันแคชช่วยได้เพราะโดยพื้นฐานแล้วเรากำลังบอกเคอร์เนลว่า "เฮ้ ดูสิ ฉันไม่มีหน่วยความจำเพิ่มเติมที่จะใช้สำหรับแคช ดังนั้นโปรดกำจัดมันโดยเร็วที่สุด และจัดเก็บเฉพาะแคชที่ใช้บ่อยที่สุด/สำคัญที่สุดเท่านั้น ข้อมูล."

แม้ว่าแคชจะลดลง แต่เมื่อเวลาผ่านไปหน่วยความจำส่วนใหญ่ที่ติดตั้งถูกครอบครอง เคอร์เนลจะเริ่มการสลับแบบฉวยโอกาสเร็วขึ้นมาก ดังนั้น CPU (การบีบอัด) และการแลกเปลี่ยน I/O จะไม่รอจนถึงนาทีสุดท้ายและใช้ทรัพยากรทั้งหมดในคราวเดียวเมื่อ มันสายมากแล้ว. ZRAM ใช้ 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

เพิ่มความคิดเห็น