Zswap、Zram、Zcache桌面使用場景
我一直試圖了解Zswap、Zram 和 Zcache**案例的區別。**提前為這個冗長/略顯草率的問題道歉。我做了一堆Google搜尋,我知道 zram 基本上是一個用於壓縮交換的塊設備,而 zswap 使用 frontswap api 在核心中壓縮。zswap 的一個優點似乎是它可以在 LRU 方式的壓力下將一些頁面移動到支持交換,而 zram 不能這樣做(請確認,不確定這是否屬實)。
所以這是我的問題: 1.) 作為桌面使用者,zcache/zswap/zram 之間的性能差異是什麼,尤其是 zswap 和 zram?例如,記憶體碎片(導致記憶體使用過多和浪費的那種)更好/更差?
額外問題:2.) 對於桌面性能(包括桌面的響應能力,加上最小的破壞性交換行為和健全的記憶體管理),是否存在上述的理想組合(例如,zram+zswap 或 zram+zcache)?
*非常感謝引用來源。
我應該補充一點,我是一位經驗豐富的 Linux 使用者(5 年),並且試圖真正了解我的系統(包括核心)是如何工作的。但是,我不是程序員,只有非常基本的程式知識(大學課程 3 學分)。但是,如果您需要,請保持技術性;我會在自己的時間解析你的意思。
系統規格:
Linux Mint 15 Processor:Core 2 Quad 6600 (2.4ghz) Ram: 8G linux kernel: liquorix 3.11 series Storage: 128 GB SSD, 1TB HDD 5400rpm
請不要“購買更多 ram”評論!我已經在這塊主機板上最大化了記憶體,並且在可預見的未來有 0 美元的升級預算。但是我喜歡保持開放的記憶體密集型程序(多個瀏覽器是我的 ram 的主要消費者),所以我不介意在合理的性能下降限制內進行交換。
我可以嘗試回答這些問題的最好方法是說出這三個實際上是什麼。
記憶體
zRAM 本質上只不過是一個交換設備。記憶體管理將頁面推送到交換設備,zRAM 將壓縮該數據,根據需要分配記憶體。
Zswap
zswap 是一個壓縮的交換空間,由核心內部分配,並不作為交換設備出現。frontswap 以與使用交換設備相同的方式使用它,但以更有效的方式使用它。
記憶體
Zcache 是 frontswap 和 cleancache 的前端。
Zcache 取代了 zRAM,因此您並不真的希望它們都爭奪資源,儘管有一些關於在適當情況下兩者如何能夠很好地協同工作的討論。現在我不會費心去嘗試,而是讓專家來解決這個問題。
一些閱讀:
https://lwn.net/Articles/454795/
https://www.kernel.org/doc/Documentation/vm/zswap.txt
http://www.zeropoint.com/Support/ZCache/ZCachePro/ZCacheAdvantages.html
就個人而言,我剛剛禁用了 zRAM 並在我所有具有足夠新核心的系統上啟用了 Zcache(Android 設備上仍然啟用了 zRAM)。
至於表現:那是你必須自己研究的事情。每個人都不一樣。不過,理論上,Zcache 應該比 zRAM 記憶體效率更高,並且它在兩個級別(frontswap 和 cleancache)上工作,並且它可以根據需要分頁到交換設備(例如在硬碟驅動器上)。您還可以選擇使用哪種壓縮算法,如果它使用過多的 CPU(我無法想像會這樣)。
更新:Zcache 已從 3.11 核心中移除(目前),因此 zRAM 再次成為較新核心中的唯一選項。 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256503/comments/3 http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git /commit/?id=96256460487387d28b8398033928e06eb9e428f7