QEMU 进程将所有内存分配给 Windows VM

QEMU 进程将所有内存分配给 Windows VM

每当我使用 模拟基于 Linux 的操作系统时qemu,我都会看到通过命令分配给虚拟机的内存量htop等于客户操作系统中的进程真正需要的内存量。但是,如果我使用qemu为基于 Linux 的场景提供的相同选项模拟基于 Windows 的操作系统,我从主机的角度看到所有指定的内存都分配给了该qemu进程。(例如,如果进程以 8GB 内存启动,则将分配 8GB 内存qemu)。但是,从虚拟机的角度来看,观察到的使用内存量task manager要低得多。(例如 2GB)我认为也许不应该正确安装膨胀驱动程序。但我可以通过发出qmp膨胀查询来管理内存分配。如何为 Windows 客户操作系统和基于 Linux 的系列启用动态内存分配?下面是qemu我为 Linux 和 Windows 操作系统发出的命令。

qemu-system-x86_64 -accel kvm -machine q35 -smp 1 -m 8192M -name test-ballooning -uuid ID
-cpu host,host-cache-info=on,l3-cache=off
-device qemu-xhci,id=xhci
-device usb-tablet,bus=xhci.0
-daemonize -vnc IP:0,to=100,password=off,websocket=on
-chardev socket,id=qmp,path=PATH.qmp,server=on,wait=off -mon chardev=qmp,mode=control,pretty=off
-chardev socket,id=hmp,path=PATH.hmp,server=on,wait=off -mon chardev=hmp,mode=readline
-chardev socket,path=PATH.qga,server=on,wait=off,id=qga0
-device virtio-serial -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0
-no-shutdown
-drive file=IMAGE.img,if=none,id=disk0,l2-cache-size=8M,format=qcow2
-device virtio-blk-pci,drive=disk0,scsi=off,bootindex=2
-drive if=none,id=cdrom0,file=CDROM.iso,format=raw
-device virtio-scsi -device scsi-cd,drive=cdrom0,bootindex=1
-nodefaults -vga cirrus -device AC97
-chardev socket,id=serialport,path=PATH.tty,server=on,wait=off
-serial chardev:serialport
-netdev tap,id=nic0,ifname=IFNAME,script=no,downscript=no -device virtio-net-pci,netdev=nic0,mac=MAC
-device virtio-balloon-pci,deflate-on-oom=on

我的主机操作系统是,我使用Debian 11的版本是qemuQEMU emulator version 5.2.0 (Debian 1:5.2+dfsg-11+deb11u2)

相关内容