หากคุณใช้ Linux คุณสามารถคูณ RAM ที่มีอยู่ได้โดยไม่ต้องซื้อโมดูลหน่วยความจำใหม่ Zram, zswap, และ zcache อนุญาตให้คุณบีบอัดเนื้อหา RAM ของ PC โดยปฏิบัติแล้วขยายมัน แตคุณควรใช้ตัวไหน? ตัวไหนดีกว่า? อ่านต่อเพื่อค้นหาคำตอบ
ประโยชน์ของการบีบอัด RAM
หากคุณเคยดูการนำเสนอเกี่ยวกับคอนโซลรุ่นต่อไปจาก Sony และ Microsoft คุณอาจสังเกตว่าทั้งสองบริษัททำความสำคัญมากเกี่ยวกับความเร็วของ storage ของพวกเขา มีเหตุผลสำหรับทั้งหมดนั้น: storage เป็น bottleneck ที่มีผลกระทบมากที่สุดแม้บน high-end PCs ล่าสุด
เป้าหมายสูงสุดของโซลูชันที่เราเห็นที่นี่คือลดปริมาณข้อมูลที่แลกเปลี่ยนระหว่าง RAM ของคอมพิวเตอร์และระบบ storage ที่ช้ากว่า นี่สำคัญที่จะเก็บไว้ในใจ เพราะตามที่เราจะเห็น มันคือปัจจัยที่แตกต่างกัน
ZRam
Zram เป็นโซลูชันการบีบอัด RAM ที่ตรงไปตรงมาที่สุดใน Linux วันนี้ ก่อนหน้านี้รู้จักในชื่อ compcache มันใช้ประโยชน์จากการรองรับ multiple swap devices ของ Linux โดยการสร้างอีกตัวหนึ่ง (หรือมากกว่า) ใน RAM ของคอมพิวเตอร์
Zram ทำงานโดยการสร้างลำดับชั้นของพื้นที่จัดเก็บสามชั้น มันสร้าง compressed swap volume ใหม่ใน RAM นั่นคือ – อย่างลำดับชั้น – วางระหว่าง RAM และ storage devices จากนั้น เมื่อ RAM เต็มไปด้วยข้อมูล มันย้ายข้อมูลส่วนเกินไปยัง compressed swap เมื่อนั้นเต็มไปด้วย zram เริ่มย้ายข้อมูลไปยัง swap partition ใน storage drive
Swap device ใหม่นี้ได้รับ priority สูงกว่าตัวที่อยู่ใน actual storage ที่ช้ากว่าของ PC เพื่อถูกใช้ก่อน มันยังพึ่งพาหนึ่งในอัลกอริทึมการบีบอัดหลายตัว เช่น LZ4 หรือ LZO เพื่อบีบอัดข้อมูลให้มากที่สุดใน swap device นี้
โปรเซสเซอร์รุ่นใหม่ถึงจุดที่พวกเขาสามารถบีบอัดและถอดรหัสข้อมูลที่จัดเก็บใน RAM เร็วกว่าที่จะเขียนหรืออ่านจาก SSD หรือ HDD drive ด้วยผลกระทบต่อประสิทธิภาพของคอมพิวเตอร์ที่ขั้นต่ำ
คุ้มค่าที่จะทราบว่า zram ทำงานด้วยตัวเอง โดยไม่ต้องการ swap devices อื่นๆ ดังนั้น คุณสามารถใช้มันใน embedded systems หรือ live CDs ได้ เนื่องจากมันไม่ต้องมี actual storage backing
ZSwap
Zswap ซับซ้อนกว่า zram มันปรับปรุงความสัมพันธ์ระหว่าง RAM ของคอมพิวเตอร์และ storage devices ที่ช้ากว่า โดยการเพิ่ม smart compression ที่พวกมัน intersect
กับ zswap compressed RAM และ swap volumes ที่มีอยู่แล้วใน storage devices ของคอมพิวเตอร์ถูกจัดการเป็น nodes ใน intelligent storage system Zswap ใช้ส่วนหนึ่งของ RAM ของคอมพิวเตอร์เช่นกัน แตไม่ได้ย้ายทุกอย่างที่ไม่พอดีใน RAM ที่เหลือไปพยายามบีบอัดมัน แทนที่จะเป็น มันบีบอัดทุกอย่างที่ไม่พอดีใน actual RAM ก่อน หากข้อมูลถูกบีบอัด zswap จัดเก็บมันใน RAM หากไม่ได้ มันจัดเก็บไปยัง existing swap
ด้วยวิธีนี้ zwap ใช้ประโยชน์จาก RAM และ swap space ที่มีอยู่ได้ดีกว่า เพราะมันจะไม่ hog RAM ที่มันใช้กับข้อมูลที่บีบอัดไม่ได้
เนื่องจากพึ่งพา existing swap zswap ดีกว่าสำหรับ Linux installations บนทุก PC โดยเฉพาะที่มี RAM น้อยกว่า 4GBs
Zcache
Zcache ทำงานร่วมกับระบบ tmem ("Transcendent Memory") เพื่อเสนอให้ Linux kernel วิธีที่หลากหลายมากขึ้นในการจัดเก็บข้อมูลที่ไม่ได้ใช้งานอยู่
Zcache เพิ่ม transparent layer ของ memory management เพิ่มเติมบน kernel ที่บีบอัดข้อมูลใดๆ ที่ไม่ได้ใช้งานอยู่ ณ ขณะนั้น ต่างจากการต้องจัดการทุกไบต์ของข้อมูล ด้วย zcache Linux kernel สามารถจัดเก็บหน้าข้อมูลทั้งหมดเข้าไปใน "pools" ผ่าน interface ของ tmem zcache backend จากนั้นบีบอัดกลุ่มข้อมูลเหล่านี้
เหมือน zswap zcache เก็บเฉพาะข้อมูลที่บีบอัดแล้วใน RAM และผลักหน้าที่ไม่ได้บีบอัดไปยัง actual swap ทำให้ใช้ทั้งสองอย่างได้ดีที่สุด
ตัวไหนดีกว่า?
ในทฤษฎี zcache เสนอโซลูชันที่ดีที่สุด อย่างไรก็ตาม นั่นไม่ได้หมายความว่ามันคือทางที่จะไป เพราะ practicality ก็สำคัญเช่นกัน 儘管มีฟีเจอร์ขั้นสูง zcache ไม่ได้รับการรองรับอย่างกว้างขวาง การพัฒนาของมัน stagnated และมันถูกลบออกจาก Linux kernel ใน version 3.11 เพื่อใช้มันวันนี้ คุณจะต้องกระโดดผ่านหลายแห และผลลัพธ์อาจจะไม่ดีกว่าการใช้ zswap มากนัก
สementara zram ถูกจำกัดมากกว่า เพราะมันไม่ได้มากกว่า virtual volume ที่จัดเก็บใน RAM และใช้เป็น swap space มันช่วยระบบที่ขาด RAM ได้ แตทำงานโดยการ blindly taking สิ่งต่างๆ จาก point A และย้ายไป point B แล้ว point C โดยไม่สนใจว่าพวกมันเป็นอะไรจริงๆ
สิ่งนี้ทำให้ zswap เป็นตัวเลือกที่ดีกว่าสำหรับผู้ใช้ Linux ส่วนใหญ่ ไม่ว่า distribution จะเป็นอะไร เพื่อดูว่าคุณสามารถใช้ประโยชน์จากมันได้อย่างไร ดูคู่มือของเราเกี่ยวกับ zswap