相关疑难解决方法(0)

swapoff 怎么会这么慢?

不知何故,我碰巧换掉了 14 GB 的内存。杀了罪魁祸首后,我又有了大量的空闲内存,所以我想我可以再把重要的数据带进来。因此,使用了 32 GB 中的 5 GB 和使用了 14 GB 的交换空间,我跑了swapoff -a…… 4 小时后,大约一半的工作完成了。

这意味着少于 1 MB/s,而我可以轻松复制 200 MB/s。我的交换是加密的,但所有普通分区也是如此,使用aes-ni它不会导致明显的 CPU 负载(填充交换空间只需要几分钟)。我看到优化没有特殊原因swapoff,但是我想知道它怎么会变慢?


只需添加更多数据:我的主内存是 32 GB,我在 4 个硬盘中的每一个上都有 32 GB 的交换空间(当然是矫枉过正,但谁在乎?)。整个交换空间可以在不到 5 分钟的时间内被(解密和)读取:

time -p sudo sh -c 'for i in /dev/mapper/cryptswap?; do md5sum $i & done; wait'
014a2b7ef300e11094134785e1d882af  /dev/mapper/cryptswap1
a6d8ef09203c1d8d459109ff93b6627c  /dev/mapper/cryptswap4
05aff81f8d276ddf07cf26619726a405  /dev/mapper/cryptswap3
e7f606449327b9a016e88d46049c0c9a  /dev/mapper/cryptswap2
real 264.27
Run Code Online (Sandbox Code Playgroud)

读取分区的一部分不会比读取全部更慢。然而,阅读大约 1/10 的时间需要大约 100 倍的时间。

我观察到,在swapoffCPU 大部分时间都处于空闲状态(可能是一个内核的 10%),磁盘也是如此(由 LED“测量”)。我还看到交换空间一个接一个关闭。

swap

98
推荐指数
4
解决办法
4万
查看次数

标签 统计

swap ×1