为什么VirtualBox显示的CPU数量多于可用的?


6

我有一个Intel Core i7 3930K,带有6个CPU内核。现在,我知道每个核心都可以处理2个独立的线程。这使得12个虚拟核心 - 我可以使用我的系统监视器看到它(见下面的截图)。

但是当我使用Oracle的VirtualBox软件创建虚拟机时,我突然可以为该机器分配24个CPU。怎么会这样?

在此输入图像描述

那么,这意味着什么?实际上有24个核心 - 或者VirtualBox是错误的吗?

如果我分配例如4个核心会发生什么 - 真正添加了多少个虚拟机?

Answers:


11

一个核心,无论是否具有超线程,都可以模拟任意数量的虚拟核心,只需进行时间分割即可。但是,这会产生各种问题,因为操作系统希望同时运行的代码实际上会交错。过度配置会导致性能下降如此之大,系统可能会出现冻结状态,操作时间会比应有的时间长几千倍。


1
非常感谢,+1你已经回答了我的后续问题,为什么我的Windows 8现在总是冻结!:)
Waqar Lim 2013年

1
将模拟“额外”核心(好吧,所有这些核心都是模拟的,如果你这样看的话)。它工作得很好。累积性能当然不会高于实际硬件的性能。锁定和问题很可能是VM软件中可能在较新版本中修复的错误。我刚刚在4核硬件上启动了一个6核VM,它运行得很好,加载了所有6个虚拟核(使用VirtualBox 4.3.14与Windows)。VmWare也支持这一点。
DavidBalažic

@DavidBalažic它不起作用“就好”。它可能导致可怕的性能损失。操作系统有时会认为代码在另一个核心运行(实际上并非如此)并等待它,耗尽代码解锁它所需的资源。它确实会导致灾难性的性能损失。操作系统需要知道线程是否正在运行才能正常运行。
大卫施瓦茨2016年

@DavidSchwartz这可能会导致糟糕的表现。这99%依赖于VM实现。关于您提到的操作系统等待:如果您指的是客户操作系统,那么它将正常工作,因为虚拟机将“破坏”正在等待并运行其他线程的“线程”,与实际物理内核的数量无关(vmware)这里更灵活,但这又取决于使用的版本)。也许你可以展示你提到的问题发生的实际情况。
DavidBalažic2016年

@DavidBalažic它不会这样做,因为它无法知道线程在等什么。它确实发生了。事实上,当他们想要的资源由他们认为在核心上运行的另一个线程持有时,操作系统会旋转。对于不知道线程没有运行的操作系统,它确实会降低数千倍的性能。
David Schwartz

1

如果分配4个核心,则VM中将获得4个核心。然而,几乎所有的时间你最好只分配1,因为每次添加另一个核心时都会增加很多开销。

在您的情况下,您最多可以拥有5个核心,如果您将其转移到红色区域,您的虚拟机将变得不稳定。

虚拟框表示您使用的最大内核数应为n-1个物理内核。超线程不算数。

虚拟盒论坛上的这个帖子支持这个。


但是为什么VirtualBox告诉我即使是12个内核也“可以”?(见截图。)我刚尝试8,它一直冻结...
Waqar Lim 2013年

顺便说一句,它不会在新版本的VirtualBox上执行此操作。
Tek 2014年

0

处理器i7 3930K具有VT-x。

英特尔®虚拟化技术(VT-x)允许一个硬件平台作为多个“虚拟”平台运行。它通过将计算活动隔离到单独的分区来限制停机时间和保持生产力,从而提高了可管理性。

这意味着您可以模拟比它可以处理的线程多几个CPU,从而在使用虚拟机时可以看到更多的CPU可用。


1
这实际上不是VT-x的用武之地。
丹尼尔B

0

在我的情况下使用6我们的8 CPU核4核8线程处理器在测试中比8 中的4个更快,尽管Virtual Box表明我可能会降级。因此,我认为如果你是新手并且会抱怨慢,那么Virtual Box可以防止自己陷入脚下,而作为超级用户,你可以通过这种谨慎。

答案很长:

我有Intel-Core-i7-2820QM,有4个内核和8个线程。我有Virtual Box 5.2.6与Windows 10主机和来宾。

CPU在Virtual Box Guest设置中将6 s out 8设置为userbenchmark中的下一个值:

多核心

MC Int 307
MC Float 326
MC Mixed 315
47%316分


四核

QC Int 270
QC Float 272
QC混合268
61%270点

CPU-Z:

在此输入图像描述

设置4 CPU秒:

Userbenchmark

多核心

MC Int 260
MC Float 269
MC Mixed 269
40%266分

四核

QC Int 260
QC Float 264
QC混合262
59%262点

CPU-Z:

1108 4.21 6

笔记:

在测试运行期间没有发生热量节流(在100摄氏度时发生):

997 3.37 4

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.