Zram、Zcache 和 Zswap:哪一个最适合您?

如果您使用的是 Linux,则无需购买新的内存模块即可增加可用 RAM。 Zram、zswap 和 zcache 允许您压缩 PC RAM 的内容,实际上是扩展它。 但是您应该使用哪一种? 哪个更好? 请仔细阅读,找出答案。

RAM 压缩的好处

如果你看过索尼和微软关于下一代游戏机的演示,你可能已经注意到两家公司都对他们的存储速度大惊小怪。 这一切都是有原因的:即使在最新的高端 PC 上,存储也是影响最大的瓶颈。

我们在这里看到的解决方案的最终目标是最大限度地减少计算机 RAM 与其较慢的存储系统之间交换的数据量。 记住这一点很重要,因为正如我们将看到的,这是他们的差异化因素。

随机存取存储器

Zram 是当今 Linux 中最直接的 RAM 压缩解决方案。 以前称为 compcache,它通过在计算机的 RAM 中创建一个(或多个)额外的交换设备来利用 Linux 对多个交换设备的支持。

Zram 通过创建三个存储空间的层次结构来工作。 它在 RAM 中创建一个新的压缩交换卷,即分层放置在 RAM 和存储设备之间。 然后,当 RAM 充满数据时,它将多余的数据移动到压缩交换区。 当它也被填满时,zram 开始将数据移动到存储驱动器中的交换分区。

这个新的交换设备被分配了比驻留在 PC 较慢的实际存储中的那些更高的优先级,以便在它们之前使用。 它还依赖于多种压缩算法中的一种,如 LZ4 或 LZO,以在此交换设备中填充尽可能多的数据。

现代处理器已经达到了压缩和解压缩存储在 RAM 中的数据的程度,比写入或读取 SSD 或 HDD 驱动器的速度更快,对计算机性能的影响可以忽略不计。

值得注意的是,zram 独立工作,不需要其他交换设备。 所以,你可以,对于 example,在嵌入式系统或 Live CD 中使用它,因为它不必由实际存储支持。

交换

Zswap 比 zram 更复杂。 它通过在相交处添加智能压缩来改善我们计算机的 RAM 与其较慢的存储设备之间的关系。

Zram Zcache Zswap Zswap

使用 zswap,已存在于计算机存储设备中的压缩 RAM 和交换卷被视为智能存储系统中的节点。 Zswap 也占用了计算机 RAM 的一部分,但不会盲目地移动不适合 RAM 其余部分的所有内容,然后尝试对其进行压缩。 相反,它首先压缩不适合实际 RAM 的所有内容。 如果数据被压缩,zswap 将其存储在 RAM 中。 如果不是,则将其存储到现有交换中。

这样,zswap 可以更好地利用可用 RAM 和交换空间,因为它不会,因为 example, 用不可压缩的数据占用它使用的 RAM。

由于它依赖于现有的交换,因此 zswap 更适合在每台 PC 上安装 Linux,尤其是那些内存不足 4GB 的 PC。

高速缓存

Zcache 与 tmem(“超验内存”)系统协同工作,为 Linux 内核提供一种更通用的方式来存储当前未使用的数据。

Zcache 在内核上添加了一个额外的透明内存管理层,用于压缩当前未使用的任何数据。 与必须管理每个字节的数据不同,使用 zcache,Linux 内核可以通过 tmem 的接口将整页数据存储到“池”中。 zcache 后端然后压缩这些数据组。

与 zswap 一样,zcache 仅将压缩数据保存在 RAM 中,并将未压缩的页面推送到实际交换,从而充分利用两者。

哪一个更好?

理论上,zcache 提供了最好的解决方案。 然而,这并不意味着它是可行的方法,因为实用性也很重要。 尽管 zcache 具有先进的功能,但广泛不受支持。 它的发展停滞不前,并在 3.11 版上从 Linux 内核中删除。 今天要使用它,你将不得不跳过箍,结果可能不会比使用 zswap 好多少。

另一方面,zram 受到更多限制,因为它只不过是存储在 RAM 中并用作交换空间的虚拟卷。 它可以帮助绑定 RAM 的系统,但基本上是盲目地从 A 点取东西,然后将它们移到 B 点,然后移到 C 点,而不关心它们的实际情况。

这使得 zswap 成为大多数 Linux 用户的更好选择,无论他们的发行版怎样。 要了解怎样利用它,请查看我们的 zswap 指南。

永远不会错过

接收我们最新教程的更新。

注册所有时事通讯。 我想通过电子邮件接收时事通讯。 我们不会共享您的数据,您可以随时取消订阅。 订阅

相关阅读:

Posted in: Linux