我有一台运行多个虚拟机的 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
再次使用须藤如果需要的话)。