如果我在QEMU中使用的核数多于主机中可用的核数,会发生什么?



我正在运行dhrystone基准测试工具,以查看运行ubuntu 22.04预装映像的qemu-system-riscv64的性能。主机有2个内核,每个内核有1个线程。我在qemu-system-riscv64上运行了1、2和4核的组合测试(可以用smp标志指定)。我观察到,当我从qemu-system-riscv64的1核到2核时,dhrystones增加了,但是当我从2核到4核时,dhrystones的数量比2核的数量少。这种行为的原因是什么?我使用以下命令启动ubuntu 22.04:

qemu-system-riscv64 
-machine virt -nographic -m 2048 -smp 4 
-kernel $UBOOTPATH/u-boot.bin 
-device virtio-net-device,netdev=eth0 -netdev user,id=eth0,hostfwd=::<host_port>-:<VM_port> 
-drive file=ubuntu-22.04.1-preinstalled-server-riscv64+unmatched.img,format=raw,if=virtio

我也尝试运行make-j标志,同样的行为发生当我使用-j4-j2如上所述

Qemu target riscv64-softmmu支持MTTCG,因此每个模拟的客户机内核在单独的主机线程中运行,因此客户机性能被主机的总处理能力饱和。例如,如果客户机能够在空闲的主机系统上使用所有可用的客户机内核,那么添加一个新的客户机内核将提高客户机的整体性能,只要客户机内核的总数不超过主机内核的数量。在此之后,主机CPU负载将接近100%,添加新的客户内核只会增加主机CPU时间的并发性。

最新更新