背景
我们在 Ubuntu 16.04 上运行多个 KVM 服务器,并已开始测试升级到 20.04。我们发现,尽管我们从未在 16.04 服务器上看到任何交换使用情况,但几天后,20.04 服务器将显示数百 MB 的交换使用情况。这不是一个大问题,因为 vmstat 显示交换活动非常少,并且 munin 图表确认交换输入/输出无关紧要,但我们仍然想了解这种行为。
到目前为止,我们已经使用 Nagios 来监视交换使用情况并在发现任何情况时发出警报。已从 16.04 升级到 20.04 的系统正在运行 5 个轻负载的 VM。主机系统显示已使用内存约 29G,总内存约为 200GB。没有峰值或任何导致内存使用量达到如此高的情况。VM 的内存使用受到限制,并且 KVM 服务器本身上没有运行其他占用内存的进程。
root@kvm-xx:~# free -m
total used free shared buff/cache available
Mem: 193336 29495 768 5 163072 162404
Swap: 6675 240 6435
Run Code Online (Sandbox Code Playgroud)
顶部,进程交换的示例:
PID VIRT RES SHR S %MEM COMMAND SWAP
6447 18,2g 15,8g 22908 S 8,4 qemu-system-x86 239352
6160 2661052 1,9g 21880 S 1,0 qemu-system-x86 90788
6315 2129436 644388 …Run Code Online (Sandbox Code Playgroud)