ZRAM 与常规交换分区

Mad*_*ter 9 swap memory-usage ram zram

我不完全了解 zram 的功能和潜在优势。

例如:一旦 zram 被激活,多少百分比的内存将专用于分页?

另一个问题:显然总内存大小是内存中交换文件的上限。一旦耗尽,系统是否会开始在常规交换分区(如果存在)上进行交换?

zram 的主要缺点是什么?

注意:我有 32GB 的物理内存和 20GB 的交换分区。我使用非常需要内存的程序,并且经常用完内存(top 命令显示物理和交换几乎已满,并且系统速度很慢)。

谢谢。

psu*_*usi 13

zram创建一个您指定大小的虚拟块设备,方法是将(例如 "512m" )写入/sys/block/zramX/disksize(其中 X 是相关 zram 设备的基于 0 的编号,因此第一个为 0 )。

然后,您可以将其格式化以进行交换mkswap /dev/zram0并使用 启用交换swapon /dev/zram0。写入其中的数据将被压缩并存储在 RAM 中。压缩数据本身不能换出。请注意,并非所有数据都是可压缩的。

首先使用哪个交换设备取决于它们的优先级,您可以使用-p xx参数 to指定swapon。具有较高优先级的交换将在较低优先级之前被填充,因此给 zwap 一个高优先级是个好主意,这样它就会在回退到磁盘交换之前用完。

  • @MadHatter,当内核将数据交换到 zram 设备时,它会压缩该数据并将其保存在 ram 中。然后它不能再次换出(到磁盘或其他方式)。zcache 是一种比 zram 更好的解决方案。zram 可以做而 zcache 不能在没有任何磁盘交换的情况下运行的一件事。降低 swappiness 值会牺牲磁盘缓存来支持 NOT swapping,这违背了 zram 的目的。如果有的话,我会把它打开。 (2认同)