为何清算掉期要花这么长时间?

为何清算掉期要花这么长时间?

为什么从 RAM 移动到交换区很快,而从交换区移动到 RAM 却很慢?

当我运行需要更多可用内存的程序时,我发现通过将未使用的(=访问最少的)页面移至交换区,RAM 被快速“清理”。

但当我跑的时候

swapoff -a ; swapon -a

将交换空间移回 RAM 需要很长时间(几 GB 的交换空间需要几分钟)。

交换是另外在 SSD 上进行的。或者swapoff -a命令是否进行了一些我可以避免/禁用的特殊检查?

答案1

如果可能的话,您可以要求内核不使用交换,除非所有 RAM 都已使用。这是“vm.swappiness=0”选项,需添加到 sysctl.conf 中。您需要重新启动才能看到效果。

您不需要清除交换...

答案2

为了全面理解这一点,您应该阅读更多有关 Linux 中内存管理的工作原理的内容。

我的猜测是,它会经过大量的 RAM 并将其移动以进行碎片整理,这样它就可以将内容从交换移动到连续的内存块。

相关内容