ZRAM和ZSWAP之间的区别

时间:2013-08-26 05:28:17

标签: linux-kernel

有谁知道linux内核中的功能ZRAM和ZSWAP有什么区别?似乎它们非常相似 - 在ram中存储压缩页面。

2 个答案:

答案 0 :(得分:44)

zram

  • 状态:自3.14版(2014年3月)起在主线内核中可用

  • 实施:压缩块设备,内存是动态的 分配为数据存储

  • 用法:将zram块设备配置为交换设备以消除需求 物理交换定义或交换文件

  • <强>优势

    1. 无需物理交换设备。这个名字很受欢迎 上网本首次亮相。 Zram(然后是compcache)允许用户访问 避免交换缩短这些内存中SSD的使用寿命 约束系统。

    2. zram块设备可用于除以外的其他应用程序 交换,你可能会使用块设备的任何东西。

  • <强>缺点

    1. 一旦页面存储在zram中,它将保留在那里,直到分页为或 无效。分页的第一页将是最早的 页面(LRU列表),这些是很少的“冷”页面 访问。随着系统继续交换,它将转移到页面 更温暖(更频繁访问),这些可能无法做到 由于冷页消耗的交换槽而存储。什么 zram无法做到(compcache可以选择配置块 支持设备)是将页面逐出物理磁盘。理想情况下你 想要将内核压缩交换空间中的数据转换为 磁盘,以便您可以使用内核内存来缓存热交换页面 或者将其释放以提高工作效率。

zswap

  • 状态:自3.11版(2013年9月)起在主线内核中可用

  • 实施:交换页面的压缩内核缓存。在内核 缓存是压缩的,压缩算法可以使用 CryptoAPI和页面存储是动态分配的。年长 页面可以被驱逐到磁盘,使其成为一种后备 高速缓存中。

  • 用法:用于常规交换设备的缓存交换页(或交换 文件)。

  • <强>优势

    1. 与交换代码集成(使用Frontswap API)允许使用zswap 选择只存储压缩良好并处理内存的页面 分配失败,在这些情况下,页面被发送到后台 交换设备。

    2. 缓存中的最旧页面被推送到支持交换设备 为更新的页面腾出空间,这解决了LRU反演问题 缺乏页面驱逐会出现。

  • <强>缺点

    1. 需要物理交换设备(或交换文件)。

答案 1 :(得分:13)

ZRAM 是Linux内核的一个模块,以前称为“compcache”。 ZRAM通过避免在磁盘上进行分页来提高性能,而是使用RAM中的压缩块设备进行分页,直到需要使用硬盘驱动器上的交换空间为止。由于使用RAM比使用磁盘更快,因此zram允许Linux在需要交换/分页时更多地使用RAM,尤其是在安装了较少RAM的旧计算机上。

ZSWAP 是交换页面的轻量级压缩缓存。它需要页面 在被换出的过程中并试图将它们压缩成一个 动态分配基于RAM的内存池。 zswap基本上交易CPU周期 可能减少交换I / O.这种权衡也可能导致a 如果从压缩缓存中读取,则会显着提高性能 比从交换设备读取更快。