Cleancache与Zram?


9

我这里有一台旧笔记本电脑,只有512 MB RAM。由于有几个内核版本,我正在使用zram将其中的256 MB转换为压缩的ramdisk,然后将其用作交换。事实证明,这非常成功,并且系统的响应速度更快,(硬盘支持的)交换使用率大大降低,从而降低了系统的运行速度。

从linux 3.0开始,内核还包含cleancache,它使用zram之类的后端作为后端,可以透明地压缩页面缓存中的页面。据我所知,这与zram不同。

我应该在笔记本电脑上同时启用两者吗?还是cleancache实际上取代了zram解决方案?

编辑:我已经找到了这个gentoo论坛链接,似乎还必须启用CONFIG_ZCACHE它,然后使cleancache使用zram来获取类似于我以前的内容。因此,似乎我启用了所有这些功能,之后不再显式使用zram。有人可以确认吗?

Answers:


9

Zram创建一个受压缩ram支持的块设备。您可以使用该块设备进行交换。通常,内存压力首先会导致高速缓存被丢弃,并且只有在释放了大部分高速缓存并且内存仍然很紧之后,系统才开始交换。

CleanCache允许将页面缓存中的页面迁移到后端,例如xen tmem,该后端由虚拟机管理程序管理并在多个VM guest虚拟机之间共享。这样做的目的是允许多个VM guest虚拟机使用相同的ram缓存相同的数据,而不是让每个VM guest虚拟机都拥有自己的缓存以及自己的相同数据副本。

ZCache是​​另一个CleanCache后端。与其将内存传递给虚拟机管理程序以保存(仅在使用Xen VM环境时才适用),它不像Zram那样存储以ram压缩的缓存页面。区别在于ZCache透明地存储缓存页面,但是Zram创建了可用于交换的块设备。

如果您有需要大量内存的应用程序,那么您将需要交换空间来支持它们,因此您仍将要使用zram(可能具有很高的swappiness值)。这是因为CleanCache仅压缩高速缓存页面;应用程序内存必须发送到交换。如果未在应用程序上使用所有内存,则可以将CleanCache与ZCache后端一起使用,以通过压缩磁盘缓存来更有效地利用剩余内存进行磁盘缓存。您甚至可以混合使用两种技术。


好的,谢谢,因此缓存页面仅用于磁盘缓存,而不用于应用程序内存。我不清楚。
lytenyn 2011年

7

除了上述答案外,还请参见https://lwn.net/Articles/454795,以获取有关该技术的详细说明。

据我了解,zram将被frontswap取代,frontswap尚未出现在主线内核中,但是它的优点是无需配置固定的交换大小。这样可以轻松启用cleancachefrontswap(而不是zramcleancache,在zramcleancache中,用于zram的内存不能用于cleancache)。

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.