zram 试用小记

最近用 Cura 处理大模型,巨大的内存占用让 8G 内存瞬间耗尽,剩下的就是无休止的swap。尤其是 kswapd0 CPU占用接近100%,同时I/O和CPU全满,基本啥也干不了,唯一能做的只有去泡杯咖啡然后等了。

在搜 kswapd CPU占用高时,发现了竟然有 zram 这样的神器,在内存中压缩交换分区的数据,提高速度的同时还减轻I/O的压力。

本人用 openSUSE,在 s.o.o 一搜,果然有。可以作为 systemd 的 service 运行。立马 branch 到自己的 repo 里。

安装后立刻启动服务会出现错误,推荐启用服务后重启。

本人系统内存 8G,实际可用 7.75G。原本设置的swap分区的大小为 8.56G,重启后系统显示交换分区大小为 16.31G,刚好是原本交换分区+可用物理内存之和。

使用 CuraEngine 尝试处理数据后发现,CuraEngine 占用内存约 5.6G,但出乎意料的是,在物理内存接近耗尽时,并没有立刻开始swap,而是系统物理内存依旧保持 130M 左右的空间。并且交换分区的利用率很低,处理进行到一半时,占用约为 110M 。同时系统运行流畅,没有出现I/O与CPU利用率过高的情况。开着 Chromium 写这篇文章,没有丝毫影响。

截图一张:

snapshot1

现在区泡杯咖啡,看着内存统计等交换分区占满…