ZRAM和ZSWAP之间的区别

use*_*731 28 linux-kernel

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

小智 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. 需要物理交换设备(或交换文件).


小智 15

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

ZSWAP是用于交换页面的轻量级压缩缓存.它需要处理正在被换出的页面,并尝试将它们压缩为动态分配的基于RAM的内存池.zswap基本上交换CPU周期,以减少交换I/O. 如果从压缩缓存中读取的速度比从交换设备读取的速度快,则这种权衡也可以显着提高性能.