如果正在使用操作系统,如何处理交换被关闭的情况?

如果正在使用操作系统,如何处理交换被关闭的情况?

因此,我的服务器上运行着一个 10GB 交换空间,用于处理大量长时间运行的进程。我想增加交换大小,因为 RAM 有时几乎 100% 运行,并且使用了 > 3/4 的交换。

作为临时解决方案,我添加了第二个交换磁盘,其上的空间量有所增加,并提高了其优先级,以便它可以在周末接管负载,而运行不足的交换磁盘将被停用。

我现在的问题是,我的流程已运行 6 - 17 天,这对于完成至关重要。

目前,如果删除旧的 10GB 交换磁盘(通过swapoff),则有足够的空间来弥补任何不足,但是,如果其中一个长时间运行的进程正在使用部分交换空间,它会杀死该进程吗?或者操作系统会处理它并重新分发吗?

我在 Google Cloud Compute Engine VM 主机上运行 Debian 10。

答案1

内核将很好地处理这个问题:swapoff将导致已删除交换区中的页面移回物理内存,然后在必要时移回(未禁用的)交换设备。只要剩余的物理内存和启用的交换足以存储工作集,任何进程都不应因此而死亡。

相关内容