kvm进程在主机上的内存占用空间太大

我正在使用最新的Ubuntu的量子,并启动一个kvm客人应该有2048 MB的内存。 现在几个小时后,我可以看到这个客人的kvm进程大约是2700 MB,所以比客人多700 MB应该能够消耗。 我的意思是像1%的小开销可以,但不是30%?!

root 8631 74.0 22.2 4767484 2752336 ? Sl Nov07 512:58 kvm -cpu kvm64 -smp sockets=1,cores=2 -cpu kvm64 -m 2048 -device virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100 -drive file=rbd:data/vm-disk-1,if=none,id=drive-virtio0,cache=writeback,aio=native -device virtio-net-pci,netdev=net0,bus=pci.0,addr=0x12,id=net0,mac=02:7a:86:e6:1a:6c,bootindex=200 -netdev type=tap,id=net0,vhost=on -usbdevice tablet -nodefaults -enable-kvm -daemonize -boot menu=on -vga cirrus root 8694 0.0 0.0 0 0 ? S Nov07 0:00 [kvm-pit/8631] 

这怎么可能以及如何预防呢?

您可以使用virtio balloon设备尝试将内存返回给系统,但这只有在客户操作系统未使用其所有内存

KVM确实需要一些内存才能运行,但是我相信很久以后这些内存就会被换掉

另外,如果最终运行大量类似的虚拟机,请确保启用了相同的页面合并。 这将允许来自类似VM的内存被共享; 需要更多的CPU使用,但值得与大量的虚拟机。 我认为这是默认情况下在Ubuntu的

一个可能的问题可能是您在驱动器上使用了cache = writeback。 除了客人使用的记忆之外,还可以吃掉你的一些记忆。

没有时间来validation是否是这种情况,但这是一个猜测。