我不完全了解 zram 的功能和潜在优势。
例如:一旦激活 zram,有多少百分比的内存将专用于分页?
另一个问题:显然,总 RAM 大小是 RAM 中交换文件的上限。一旦用尽,系统是否会开始在常规交换分区(如果存在)上进行交换?
zram 的主要缺点是什么?
注意:我有 32GB 的物理内存和 20GB 的交换分区。我使用非常耗内存的程序,并且经常耗尽内存(top 命令显示物理和交换几乎已满,并且系统速度变慢了很多)。
谢谢。
答案1
兹拉姆通过写入(例如“512m”)来创建一个指定大小的虚拟块设备/sys/block/zramX/disksize
(其中 X 是所讨论的 zram 设备的基于 0 的数字,因此第一个为 0)。
然后,您可以使用 将其格式化以进行交换mkswap /dev/zram0
,并使用 启用交换swapon /dev/zram0
。写入其中的数据将被压缩并存储在 RAM 中。压缩数据本身不能被交换出去。请注意,并非所有数据都是可压缩的。
哪个交换设备最先用完取决于他们的优先事项,您可以-p xx
使用 的参数指定swapon
。优先级较高的交换区将先于优先级较低的交换区填充,因此最好为 zwap 赋予高优先级,以便在返回磁盘交换区之前将其用完。