我正在尝试了解 QEMUsmp
选项。
目前我已将其设置为:
smp 4
据我所知,应该创建 4 个 vCPU(我猜有 1 个核心和 1 个线程)。
如果我将其设置为:性能是否会更好?
smp 1,sockets=1,cores=4,threads=1
或者
smp 1,sockets=1,cores=1,threads=4
因为应用程序可以更有效地在核心/线程上而不是在不同的 CPU 上分配工作负载?
或者上述所有选项都会产生完全相同的效果?
答案1
好的,我自己搞明白了。sockets
和之间的区别cores
主要是为了让您能够规避许可要求而实现的。 某些操作系统和软件对 CPU 数量有限制,因此您可以增加数量cores
而不是sockets
。
但在后台,它们由 QEMU 以完全相同的方式处理,它们都生成单个 QEMU 线程。因此它们之间应该没有任何性能差异。
至于threads
选项,它主要是为了让您模拟您的客户 CPU 具有超线程,然后您可以将其设置为 2,但一般情况下您并不需要这个选项。
因此,上述所有选项都有完全相同的效果,它只改变了 QEMU 线程向客户操作系统公开的方式。