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