如果有可用 RAM,为什么我的系统要进行交换?

如果有可用 RAM,为什么我的系统要进行交换?

我有一台运行多个虚拟机的 KVM 主机。硬件由 24 个核心和 40G 内存组成。这是命令的输出free

                     total      used       free     shared  buffers  cached 
Mem:                 41180500   32340344   8840156       0  2126008  36480
-/+ buffers/cache:   30177856   11002644 
Swap:                3903484    3511516    391968

如果系统仍有大量可用 RAM,为什么还要进行交换?占用率从未超过 80%(nagios 从未报告过超过该数量)。考虑到 20% 的 RAM 是 8G,它仍然比可用的交换(4G)多得多。

答案1

看一眼文章。它解释了问题,提供了解决方案和一些快速基准。简而言之,一些应该改善这种情况的设置是:

vm.swappiness=20
vm.vfs_cache_pressure=50

您可以在文章中找到它们是什么以及它们做什么的解释。

答案2

您可以尝试更改“swappiness”值。

以下是操作方法链接: https://askubuntu.com/questions/103915/how-do-i-configure-swappiness/103916#103916

答案3

在现代系统中,交换通常处于闲置状态。长时间运行的进程由内核转移到交换。因此,一些程序开始运行缓慢。您说您有空闲的内存,因此您可以通过运行以下命令禁用交换:( swapoff -av 前缀为须藤如果你不是root)

如果你不喜欢关闭交换功能,你可以使用反向命令启用它:( swapon -av再次使用须藤如果需要的话)。

相关内容