Zswap,Zram,Zcache桌面使用方案


12

我一直在尝试了解Zswap,Zram和Zcache 用例的差异。对于冗长/草率措词的问题,我们事先表示歉意。我已经做了很多谷歌搜索,而且我了解zram基本上是用于压缩交换的块设备,而zswap使用frontswap api在内核中进行压缩。zswap的一个优点似乎是,当处于LRU方式的压力下时,zswap可以将某些页面移至后备交换,而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的主要使用者),因此我不介意在合理的性能下降范围内进行交换。


Answers:


7

我可以尝试回答这些问题的最好方法是说出这三个实际上是什么。

内存

本质上,zRAM只是交换设备。内存管理会将页面推出到交换设备,而zRAM将压缩该数据,并根据需要分配内存。

交换

Zswap是由内核内部分配的压缩交换空间,不会显示为交换设备。Frontswap使用交换设备的方式与使用交换设备的方式相同,但使用方式更有效。

Zcache

Zcache是​​frontswap和cleancache的前端。

Zcache取代了zRAM,因此您实际上并不希望它们都争夺资源,尽管有一些关于在适当的情况下两者如何能够很好地协同工作的讨论。现在,我将不费吹灰之力地将其交给专家来解决。

一些阅读:
Cleancache vs 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


1
通过添加zswap.enabled=1到Linux命令行,可以在最新的内核中启用Zswap
肯·夏普
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.