แม้ว่า ZRAM จะเป็นโซลูชันที่ยอดเยี่ยมในการแลกเปลี่ยนแรงม้าของ CPU เพื่อให้ได้ RAM มากขึ้น คุณจะกำหนดค่าให้ ZRAM ทุ่มเท RAM มากหรือน้อยให้กับ ZRAM ได้อย่างไร คุณจะเปลี่ยนอัลกอริธึมการบีบอัดได้อย่างไร? การเปลี่ยนแปลงดังกล่าวคุ้มค่าในสถานการณ์ใดบ้าง? อ่านต่อไปเพื่อดูวิธีกำหนดค่า ZRAM บน Ubuntu
ตรวจสอบสถานะ ZRAM ปัจจุบันของคุณ
คนส่วนใหญ่ใช้ ZRAM บน Ubuntu, Mint หรือการแจกจ่ายอื่นที่เข้ากันได้ผ่านสคริปต์ zram-config นั่นเป็นเพราะมันช่วยให้คุณใช้ประโยชน์จาก ZRAM ได้อย่างตรงไปตรงมาที่สุด คุณสามารถติดตั้งได้ด้วยคำสั่ง:
sudo apt install zram-config
ค่าเริ่มต้นของมันจะกำหนด ZRAM ไว้ที่ครึ่งหนึ่งของ RAM จริงของคอมพิวเตอร์ของคุณ โดยแบ่งออกเป็นหลายพาร์ติชั่น หนึ่งพาร์ติชั่นสำหรับแต่ละคอร์ของ CPU ของคุณ คุณสามารถตรวจสอบสิ่งนี้ด้วย:
cat /proc/swaps
คุณสามารถดูไฟล์สลับทั่วไป (รายการ "/var/cache/swap/swapfile") ร่วมกับวอลุ่ม ZRAM แปดตัวในภาพหน้าจอของเรา ระบบของฉันมี RAM 8GB หากคุณเพิ่มวอลุ่ม ZRAM เหล่านั้นเข้าด้วยกัน ผลรวมคือ 4GB ซึ่งเท่ากับครึ่งหนึ่งของจำนวน RAM ของเรา อย่างไรก็ตาม คุณอาจต้องเปลี่ยนขนาดดังกล่าว ทั้งนี้ขึ้นอยู่กับปริมาณงานของคุณ
- หากคุณกำลังทำงานกับมัลติมีเดียและวิดีโอ สิ่งเหล่านั้นไม่สามารถบีบอัดได้ ดังนั้นจึงเป็นการดีที่สุดถ้าคุณลดขนาด ZRAM ของคุณและเพิ่มขนาดการสลับจริงของคุณ
- หากคุณทำงานกับฐานข้อมูลขนาดใหญ่หรือข้อมูลประเภทอื่นๆ ที่มีการบีบอัดข้อมูลได้สูง จะตรงกันข้าม ในสถานการณ์เช่นนี้ คุณสามารถเพิ่มการตอบสนองของคอมพิวเตอร์ได้โดยการเพิ่มขนาดของ ZRAM
การปรับแต่งที่ควรค่าแก่การพิจารณาอีกอย่างหนึ่งนั้นเกี่ยวข้องกับอัลกอริธึมการบีบอัดที่ใช้โดย ZRAM โดยค่าเริ่มต้น จะใช้ LZO หรือ LZO-RLE ซึ่งสว่างบน CPU สำหรับซีพียูรุ่นใหม่นั้น อัลกอริธึม ZSTD ที่ใหม่กว่ามักจะให้อัตราการบีบอัดที่ดีกว่า และไม่รู้สึกถึงค่าโทรที่สูงกว่าในซีพียูบ้าง ควรใช้อัลกอริทึมนี้แทนเวอร์ชัน LZO ที่เก่ากว่า หากพีซีของคุณมีอายุน้อยกว่าหนึ่งทศวรรษ
คุณสามารถใช้ zramctl
คำสั่งตรวจสอบอัลกอริธึมที่ ZRAM ใช้งานอยู่ในปัจจุบัน พิมพ์ zramctl
ในเทอร์มินัลแล้วกด Enter เพื่อดูการสลับ ZRAM ของคุณ
Zramctl ควรมีอยู่ในการแจกจ่ายของคุณแล้ว หากไม่เป็นเช่นนั้น เนื่องจากเป็นส่วนหนึ่งของแพ็คเกจ util-linux คุณสามารถนำไปใช้งานได้ด้วย:
sudo apt install util-linux
เพื่อควบคุมการทำงานของ ZRAM คุณจะต้องปรับแต่งสคริปต์หลักของมัน เริ่มต้นด้วยการเปลี่ยนจำนวน RAM ที่ใช้
เปลี่ยนขนาด ZRAM
หากต้องการเปลี่ยนการตั้งค่า ZRAM คุณจะต้องแก้ไขสคริปต์ exec ในโฟลเดอร์ bin พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล:
sudo nano /usr/bin/init-zram-swapping
หากต้องการเปลี่ยนจำนวน RAM ที่ ZRAM ใช้ คุณจะต้องแก้ไขบรรทัดต่อไปนี้:
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024 ))
บรรทัดนี้กำหนดจำนวน RAM ZRAM ที่จะใช้ตามการคำนวณง่ายๆ:
totalmem
คือจำนวน RAM ที่ติดตั้งบนพีซีของคุณ/2
แบ่ง totalmem ออกเป็นสองส่วน แปลว่า "ครึ่งหนึ่งของจำนวน RAM ทั้งหมด"/ ${NRDEVICES}
หารจำนวนนั้นด้วยจำนวนคอร์ในพีซีของคุณ* 1024
คูณผลลัพธ์ข้างต้นด้วย 1024
คุณไม่สามารถและไม่ควรเปลี่ยนแปลงสิ่งใดในจุดที่ 1 และ 3 แต่คุณสามารถเล่นกับค่าใน 2 และ 4 เพื่อปรับแต่งจำนวน RAM ที่ ZRAM ใช้
- โดยการเพิ่ม
/ 2
เป็น/ 4
จำนวน RAM ทั้งหมดของคุณจะถูกหารด้วยสี่แทนที่จะเป็นสอง ดังนั้น ZRAM จะใช้ RAM เพียงหนึ่งในสี่ของคุณแทนที่จะใช้ครึ่งหนึ่ง เราไม่แนะนำให้ใช้ RAM ทั้งหมดของคุณกับ ZRAM ดังนั้นจึงควรปล่อยให้ค่านี้อยู่ที่/ 2
หรือเพิ่มถ้าคุณต้องการให้ ZRAM ใช้หน่วยความจำน้อยลง
- ในทำนองเดียวกัน โดยเก็บ
/ 2
แต่ลดลง1024
ถึง512
คุณจะได้ผลลัพธ์เช่นเดียวกัน เนื่องจากคุณจะลด RAM ที่มีอยู่ลงครึ่งหนึ่งสำหรับอุปกรณ์แต่ละเครื่อง หากคุณต้องการให้ ZRAM ใช้ RAM มากขึ้น คุณสามารถเพิ่มค่านี้เป็น1536
แทน
เปลี่ยนอัลกอริธึมการบีบอัด ZRAM
คุณสามารถเปลี่ยนอัลกอริทึมการบีบอัดของ ZRAM ได้จากจุดเดียวกัน
ขั้นแรก ให้ตรวจสอบอัลกอริธึมการบีบอัดที่ใช้อยู่ในปัจจุบัน:
cat /sys/block/zram0/comp_algorithm
คุณสามารถผสมและจับคู่อัลกอริธึมในการกำหนดค่า ZRAM ขั้นสูงแบบกำหนดเองได้ อย่างไรก็ตาม หากคุณใช้ค่าเริ่มต้น พาร์ติชัน ZRAM ทั้งหมดจะใช้อัลกอริทึมเดียวกัน ดังนั้น คุณไม่จำเป็นต้องตรวจสอบทั้งหมด – ในคำสั่งด้านบน เราจะตรวจสอบเพียงอันแรกเท่านั้น
เราใช้อัลกอริธึม ZSTD อยู่แล้ว ซึ่งคุณสามารถดูได้ในวงเล็บในภาพหน้าจอด้านบน นั่นถือเป็นทางออกที่ดีที่สุดในขณะนี้ ระหว่างอัตราการบีบอัด ความเร็ว และความต้องการทรัพยากร ดังนั้นปล่อยให้มันเป็นอย่างนั้น อย่างไรก็ตาม หากคุณใช้ค่าเริ่มต้น คุณจะเปิดใช้งาน LZO หรือ LZO-RLE หากต้องการเปลี่ยน ให้กลับไปที่สคริปต์ exec init-zram-swapping ที่เราแก้ไขก่อนหน้านี้ ที่นั่น ค้นหาบรรทัดต่อไปนี้:
echo $mem > /sys/block/zram${DEVNUMBER}/disksize
คัดลอกและวางโดยตรงด้านล่างเพื่อให้คุณมีคำสั่งเดียวกันสองอินสแตนซ์ บรรทัดนี้กำหนดผลลัพธ์ของการคำนวณที่เราเห็นก่อนหน้านี้เป็นขนาดของแต่ละโวลุ่ม ZRAM อย่างไรก็ตาม เราจะใช้เพื่อกำหนดอัลกอริธึมการบีบอัดแทน
- แทนที่
$mem
ในตัวอย่างแรกที่ขึ้นต้นบรรทัดด้วยzstd
. - แทนที่
disksize
ที่ท้ายบรรทัดด้วยcomp_algorithm
.
เส้นที่บิดเบี้ยวควรมีลักษณะดังนี้:
echo zstd > /sys/block/zram${DEVNUMBER}/comp_algorithm
เส้นที่ปรับแต่งของเราสะท้อน zstd
เป็นค่าในพารามิเตอร์ comp_algorithm
แทน
หากคุณต้องการใช้อัลกอริธึมอื่น ให้เปลี่ยน zstd
ในคำสั่งด้านบนด้วยชื่ออัลกอริทึม
บันทึกไฟล์ที่ปรับแต่งแล้ว รีสตาร์ทคอมพิวเตอร์ และตรวจสอบผลลัพธ์
ตรวจสอบให้แน่ใจว่าได้ตรวจสอบประสิทธิภาพของระบบของคุณภายใต้การโหลด เมื่อมีการใช้ tweaked swaps ของคุณ หากคุณรู้สึกว่ามันกระตุกหรือพูดติดอ่าง แสดงว่าคุณอาจทำมันเกินกำลังและจำเป็นต้องลดค่าที่คุณเลือกลง ในทางกลับกัน ถ้ามันบินได้ คุณก็อาจจะเพิ่มขึ้นอีกบ้าง
ตอนนี้คุณรู้วิธีกำหนดค่า ZRAM ใน Ubuntu แล้ว หากคุณต้องการสร้างพีซีที่มีประสิทธิภาพยิ่งขึ้น นี่คือสิ่งที่ควรคำนึงถึงในการสร้างพีซีสำหรับ Linux