Cleancache vs Zram?


9

ฉันมีแล็ปท็อปเครื่องเก่าที่นี่ที่มี RAM เพียง 512 MB ตั้งแต่เคอร์เนลเผยแพร่ไม่กี่ครั้งฉันใช้zramเพื่อแปลง 256 MB เป็น ramdisk ที่ถูกบีบอัดซึ่งใช้เป็น swap สิ่งนี้ได้รับการพิสูจน์แล้วว่าประสบความสำเร็จอย่างมากและระบบตอบสนองได้ดีกว่ามากการใช้งาน swap (ฮาร์ดดิสก์ที่สำรองข้อมูล) ลงอย่างมากซึ่งทำให้ระบบช้าลงก่อนหน้านี้

ตั้งแต่ linux 3.0 เคอร์เนลยังมีการล้างข้อมูลด้วยซึ่งการใช้บางอย่างเช่น zram เป็นแบ็คเอนด์นั้นควรบีบอัดหน้าเว็บจากแคชของหน้าอย่างโปร่งใส เท่าที่ผมสามารถดูนี้จะแตกต่างจากzram

ฉันควรเปิดใช้งานทั้งสองบนแล็ปท็อปของฉันหรือไม่ หรือไม่CleanCacheจริงแทนที่zramวิธีการแก้ปัญหา?

แก้ไข:ฉันได้พบลิงก์ฟอรัม gentooนี้ซึ่งฉันต้องเปิดใช้งานCONFIG_ZCACHEซึ่งทำให้cleancacheใช้zramเพื่อให้ได้สิ่งที่คล้ายกับที่ฉันเคยมีมา ดังนั้นดูเหมือนว่าฉันเปิดใช้งานทั้งหมดนี้และไม่ใช้zramอย่างชัดเจนในภายหลัง มีใครยืนยันเรื่องนี้ได้ไหม

คำตอบ:


9

Zram สร้างอุปกรณ์บล็อกที่สำรองข้อมูลโดย ram ที่บีบอัด คุณสามารถใช้อุปกรณ์บล็อกนั้นเพื่อสลับ โดยปกติความดันหน่วยความจำจะส่งผลให้แคชถูกทิ้งก่อนและหลังจากที่แคชส่วนใหญ่ได้รับการปล่อยให้ว่างและหน่วยความจำยังคงแน่นหนาเมื่อระบบเริ่มทำการสลับ

CleanCache อนุญาตให้โอนย้ายเพจจากแคชของเพจไปยังแบ็คเอนด์เช่น xen tmem ซึ่งเป็นหน่วยความจำที่จัดการโดยไฮเปอร์ไวเซอร์และแชร์ระหว่างผู้เยี่ยมชม VM หลายคน เป้าหมายของการทำเช่นนี้คืออนุญาตให้แขก VM หลายคนทำการแคชข้อมูลเดียวกันโดยใช้ ram เดียวกันแทนที่จะใช้แคชของตัวเองพร้อมสำเนาของข้อมูลเดียวกัน

ZCache เป็นจุดสิ้นสุด CleanCache อื่น แทนที่จะส่งหน่วยความจำไปยังไฮเปอร์ไวเซอร์เพื่อเก็บไว้ (ซึ่งจะใช้เฉพาะเมื่อคุณใช้สภาพแวดล้อม Xen VM) มันจะเก็บหน้าแคชที่บีบอัดในหน่วยความจำคล้ายกับ Zram ความแตกต่างคือ ZCache เก็บหน้าแคชอย่างโปร่งใส แต่ Zram สร้างอุปกรณ์บล็อกที่คุณสามารถใช้เพื่อสลับ

หากคุณมีแอพพลิเคชั่นหิวหน่วยความจำคุณจะต้องใช้พื้นที่สว็อปเพื่อสนับสนุนพวกเขาดังนั้นคุณจะยังคงต้องการใช้ zram (น่าจะมีค่า swappiness สูงมาก) นี่เป็นเพราะ CleanCache บีบอัดหน้าแคชเท่านั้น ต้องส่งหน่วยความจำของแอปพลิเคชันเพื่อสลับ หากคุณไม่ได้ใช้หน่วยความจำทั้งหมดในแอปพลิเคชันคุณสามารถใช้ CleanCache กับแบ็กเอนด์ ZCache เพื่อใช้หน่วยความจำที่เหลือสำหรับการแคชดิสก์ได้อย่างมีประสิทธิภาพมากขึ้นโดยการบีบอัดแคชดิสก์ คุณอาจใช้ทั้งสองเทคนิคผสมกัน


ตกลงขอบคุณหน้าแคชนั้นใช้สำหรับแคชดิสก์เท่านั้นไม่ใช่หน่วยความจำของแอปพลิเคชัน นี่ไม่ชัดเจนสำหรับฉัน
lytenyn

7

นอกเหนือจากคำตอบข้างต้นโปรดดูhttps://lwn.net/Articles/454795สำหรับคำอธิบายโดยละเอียดเกี่ยวกับเทคโนโลยี

จากสิ่งที่ฉันเข้าใจzramจะถูกแทนที่ด้วยfrontswapซึ่งยังไม่ได้อยู่ในเคอร์เนล mainline แต่มีข้อดีที่ไม่มีการกำหนดขนาด swap ที่แน่นอน วิธีนี้จะทำให้ง่ายต่อการเปิดใช้งานทั้งcleancacheและfrontswap (แทนzramและcleancacheโดยที่หน่วยความจำที่ใช้สำหรับzramไม่สามารถใช้สำหรับcleancache ได้ )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.