繁体   English   中英

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

[英]What happens if I use more cores in QEMU than total available cores in host

我正在运行dhrystone基准测试工具来查看运行ubuntu 22.04 预安装映像的 qemu-system-riscv64 的性能。 主机有 2 个内核,每个内核有 1 个线程。 我在 qemu-system-riscv64 上结合 1、2 和 4 核(可以用smp标志指定)运行测试。 我观察到,当我将 go 从 1 核变为 2 核用于 qemu-system-riscv64 时,dhrystones 增加了,但是当我将 go 从 2 核变为 4 核时,dhrystones 的数量变得低于两核。 这种行为的原因可能是什么。 我正在使用以下命令启动 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

我还尝试使用-j标志运行make ,当我如上所述使用-j4-j2时会发生相同的行为。

Qemu 目标 riscv64-softmmu 支持MTTCG ,因此每个模拟的来宾核心都在单独的主机线程中运行,因此来宾性能因主机总处理能力而饱和。 即,只要来宾内核的总数不超过主机内核的数量,来宾内核就可以使用空闲主机系统上所有可用的来宾内核,添加一个新的来宾内核将提高总体来宾性能。 之后主机 CPU 负载将接近 100%,添加新的来宾内核只会增加主机 CPU 时间的并发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM