为什么 Ubuntu 要配置多个 ZRAM 设备进行交换

为什么 Ubuntu 要配置多个 ZRAM 设备进行交换

我计划使用 zram 作为交换设备。

init-zram-swappingUbuntu 18.04 LTS Bionic 软件包中附带的脚本为zram-config每个 CPU 创建一个 zram 设备。 https://packages.ubuntu.com/bionic/zram-config

套餐保持不变,直至埃科安

为什么要这样做?配置多个 zram 设备进行交换有什么好处吗?

我可以想象,在使用交换时不阻塞压缩会有所帮助,但从内核 4.7 开始,它将始终具有多个压缩流。每个在线 CPU 一个。 https://github.com/torvalds/linux/commit/43209ea2d17aae1540d4e28274e36404f72702f2

即使对于较旧的内核,我也希望看到该max_comp_streams属性被使用并且有一个 zram 设备。

那么,脚本是否没有根据可用的较新内核版本进行调整,或者拥有多个 zram 设备是否还有其他好处?

答案1

当分页发生在给定 CPU 拥有的内存中时(尤其是在 NUMA 配置中 - 想象一下当前的 EPYC 处理器及其 8 通道内存控制器和 NUMA 节点),最有效的方法是不要将此内存复制到另一个 CPU 的内存中(并干扰其线程)。所以我敢打赌这是出于性能原因。

相关内容