อ่าน 4 นาที
ซรัม
zram ซึ่งเดิมเรียกว่า compcache เป็น โมดูลเคอร์เนล Linux สำหรับสร้าง อุปกรณ์บล็อกแบบ บีบอัด ใน RAM กล่าวคือ ดิสก์ RAM ที่มีการบีบอัดดิสก์แบบเรียลไทม์ อุปกรณ์บล็อกที่สร้างด้วย zram...
ซรัม
| ซรัม | |
|---|---|
ภาพหน้าจอแสดงการทำงานของ zram บนopenSUSE Tumbleweed | |
| ปล่อย | 30 มีนาคม 2557 (Linux 3.14) |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | ลินุกซ์ |
| พิมพ์ | คุณสมบัติของเคอร์เนลลินุกซ์ |
| ใบอนุญาต | ใบอนุญาตสาธารณะทั่วไปของ GNU |
| เว็บไซต์ | www.kernel.org |
zramซึ่งเดิมเรียกว่าcompcacheเป็นโมดูลเคอร์เนล Linuxสำหรับสร้างอุปกรณ์บล็อกแบบ บีบอัด ใน RAM กล่าวคือดิสก์ RAMที่มีการบีบอัดดิสก์แบบเรียลไทม์ อุปกรณ์บล็อกที่สร้างด้วย zram สามารถใช้สำหรับการสลับข้อมูลหรือเป็นดิสก์ RAM อเนกประสงค์ได้ การใช้งาน zram ที่พบบ่อยที่สุดสองอย่างคือสำหรับการจัดเก็บไฟล์ชั่วคราว ( /tmp) และเป็นอุปกรณ์สลับข้อมูล ในตอนแรก zram มีเพียงฟังก์ชันหลังเท่านั้น จึงเป็นที่มาของชื่อเดิมว่า "compcache" ("แคชแบบบีบอัด") เมื่อว่างเปล่า อุปกรณ์บล็อก zram จะจัดสรรพื้นที่ประมาณ 0.1% ของขนาด[ 1 ]
หลังจากอยู่ในพื้นที่ทดสอบไดรเวอร์ของเคอร์เนล Linux เป็นเวลาสี่ปี zram ก็ได้รับการแนะนำเข้าสู่เคอร์เนล Linux หลักในเวอร์ชัน 3.14 ซึ่งเผยแพร่เมื่อวันที่ 30 มีนาคม 2014 [ 2 ]ตั้งแต่เคอร์เนล Linux เวอร์ชัน 3.15 เป็นต้นไป (เผยแพร่เมื่อวันที่ 8 มิถุนายน 2014) zram รองรับสตรีมการบีบอัดหลายแบบและอัลกอริทึมการบีบอัด หลายแบบ อัลกอริทึมการบีบอัดประกอบด้วยDEFLATE ( DEFLATE), LZ4 ( LZ4, และLZ4HC"การบีบอัดสูง"), LZO ( LZO-RLE"การเข้ารหัสความยาวรัน"), [ 3 ] Zstandard ( ZSTD), 842 ( 842) ตั้งแต่เคอร์เนล 5.1 ค่าเริ่มต้นคือLZO-RLE, [ 3 ]ซึ่งมีความสมดุลระหว่างความเร็วและอัตราส่วนการบีบอัด เช่นเดียวกับพารามิเตอร์ระบบอื่นๆ ส่วนใหญ่ สามารถเลือกอัลกอริทึมการบีบอัดได้ผ่าน sysfs [ 4 ]
เมื่อใช้เป็นพื้นที่สวอปแบบบีบอัด zram จะคล้ายกับzswapซึ่งไม่ใช่ดิสก์ RAM อเนกประสงค์ แต่เป็นแคชแบบบีบอัดในเคอร์เนลสำหรับหน้าสวอป อย่างไรก็ตามzswapจำเป็นต้องมีพื้นที่จัดเก็บข้อมูลสำรองเสมอ[ 5 ]ซึ่งไม่ใช่กรณีสำหรับ zram ตั้งแต่การเปิดตัวCONFIG_ZRAM_WRITEBACKในเคอร์เนลเวอร์ชัน 4.14 zram ยังสามารถใช้อุปกรณ์จัดเก็บข้อมูลเป็นพื้นที่จัดเก็บข้อมูลสำรองได้ ดังนั้นจึงสามารถย้ายหน้าที่ใช้งานไม่บ่อยไปยังดิสก์ได้ แม้ว่าอุปกรณ์นั้นจะเป็นเพียงพาร์ติชันในขณะนี้ก็ตาม[ 6 ] (และกระบวนการนี้ไม่สามารถจัดการโดยอัตโนมัติโดยเคอร์เนลเมื่อจำเป็นต้องปล่อยหน่วยความจำ แต่ต้องใช้การเขียนโปรแกรมพื้นที่ผู้ใช้แบบแทรกแซง[ 7 ] ) ตั้งแต่เคอร์เนลเวอร์ชัน 7.0 zram สามารถส่งข้อมูลไปยังพื้นที่จัดเก็บข้อมูลสำรองได้โดยไม่ต้องคลายการบีบอัดก่อน[ 8 ]
เมื่อใช้สำหรับการสลับข้อมูล zram (เช่น zswap) ช่วยให้ Linux ใช้ RAM ได้อย่างมีประสิทธิภาพมากขึ้น เนื่องจากระบบปฏิบัติการสามารถเก็บหน้าหน่วยความจำใน swap ที่บีบอัดได้มากกว่าหากใช้ RAM จำนวนเท่ากันเป็นหน่วยความจำแอปพลิเคชันหรือแคชดิสก์ ซึ่งมีประสิทธิภาพเป็นพิเศษในเครื่องที่มีหน่วยความจำน้อย[ 9 ] [ 10 ]ในปี 2012 Ubuntuเคยพิจารณาเปิดใช้งาน zram เป็นค่าเริ่มต้นในคอมพิวเตอร์ที่มี RAM ติดตั้งจำนวนน้อย[ 11 ]ด้วยเหตุผลเดียวกันนี้Fedoraจึงเปิดใช้งาน zram เป็นค่าเริ่มต้นตั้งแต่เวอร์ชัน 33 เป็นต้นไป[ 12 ]
การใช้พื้นที่สวอปแบบบีบอัดด้วย zram หรือ zswap ยังมีข้อดีสำหรับอุปกรณ์ฮาร์ดแวร์ระดับล่าง เช่นอุปกรณ์ฝังตัวและเน็ตบุ๊กอุปกรณ์เหล่านี้มักใช้หน่วยเก็บข้อมูลแบบแฟลชซึ่งมีอายุการใช้งานจำกัดเนื่องจากการขยายการเขียนและอาจใช้เพื่อจัดหาพื้นที่สวอปการใช้ zram หรือ zswap ช่วยลดการใช้สวอป ซึ่งช่วยลดการสึกหรอของหน่วยเก็บข้อมูลแบบแฟลชได้อย่างมีประสิทธิภาพและทำให้ใช้งานได้นานขึ้น การใช้ zram ยังส่งผลให้I/O ลดลงอย่างมาก สำหรับระบบ Linux ที่ต้องการการสวอป[ 13 ] [ 14 ]
นอกจากนี้ zram ในงานเฉพาะบางอย่างสามารถทำหน้าที่เป็นวิธีการเพิ่มหน่วยความจำได้เกือบสองเท่า (แม้ว่าจะมีความเสี่ยงสูงหากไม่มีการสลับสำรอง) ในขณะที่ทำงานได้เร็วกว่าหากปิดใช้งาน zram โดยทั่วไปจะพบเห็นได้เมื่อใช้ zram บนฮาร์ดแวร์ระดับล่างควบคู่ไปกับ งาน ที่มีการเก็บขยะและ งานที่มี I/Oเข้มข้นกับที่เก็บข้อมูลช้า (เช่น USB) ซึ่งการเขียนไปยังการสลับอาจทำให้เกิดการค้างเป็นเวลานาน สิ่งนี้สามารถทำให้การติดตั้ง Linux บน USB แบบถาวรใช้งานได้มากขึ้นบนระบบที่มีหน่วยความจำต่ำ[ 15 ]
การใช้งานโดย Android
zram ถูกใช้โดยAndroidเป็นส่วนหนึ่งของการจัดการหน่วยความจำ[ 16 ]โดยทั่วไปผู้ผลิตจะเรียกคุณสมบัตินี้ด้วยชื่อของตนเอง เช่น RAM Plus สำหรับSamsung , Extended RAM สำหรับVivoและ Memory Extension สำหรับXiaomi [ 17 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- เอกสารเคอร์เนล Linux zram และ หน้าคู่มือzramctl(8)
- Compcache ระบบแคชแบบบีบอัดสำหรับ Linux
- Compcache: การสลับข้อมูลแบบบีบอัดในหน่วยความจำ , 26 พฤษภาคม 2552, LWN.net, โดย Nitin Gupta
- การบีบอัดหน่วยความจำภายในเคอร์เนล , 3 เมษายน 2556, LWN.net, โดย Dan Magenheimer
- แคชการบีบอัด: การบีบอัดหน่วยความจำเสมือนสำหรับคอมพิวเตอร์พกพา , 16 มีนาคม 2543, โดยไมเคิล เจ. ฟรีดแมน
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ซรัม
zram ซึ่งเดิมเรียกว่า compcache เป็น โมดูลเคอร์เนล Linux สำหรับสร้าง อุปกรณ์บล็อกแบบ บีบอัด ใน RAM กล่าวคือ ดิสก์ RAM ที่มีการบีบอัดดิสก์แบบเรียลไทม์ อุปกรณ์บล็อกที่สร้างด้วย zram...
การใช้งานโดย Android
zram ถูกใช้โดย Android เป็นส่วนหนึ่งของการจัดการหน่วยความจำ [ 16 ] โดยทั่วไปผู้ผลิตจะเรียกคุณสมบัตินี้ด้วยชื่อของตนเอง เช่น RAM Plus สำหรับ Samsung , Extended RAM สำหรับ Vivo และ Memory Extension สำหรับ Xiaomi [ 17 ]
ดูเพิ่มเติม
สลับพาร์ติชั่นบน SSD การบีบอัดหน่วยความจำเสมือน
ลิงก์ภายนอก
เอกสารเคอร์เนล Linux zram และ หน้าคู่มือzramctl(8) Compcache ระบบแคชแบบบีบอัดสำหรับ Linux Compcache: การสลับข้อมูลแบบบีบอัดในหน่วยความจำ , 26 พฤษภาคม 2552, LWN.net, โดย Nitin Gupta การบีบอัดหน่วยความจำภายในเคอร์เนล , 3 เมษายน 2556, LWN.