我试图在 VB IRC 频道中找到这个问题的答案,我查看了 stackexchange、stackoverflow、超级用户和其他地方。答案很接近,但不是我想知道的。
这只是一个好奇的问题,而不是必要的问题。我只是想知道事情是如何运作的。它与任何错误、增强请求或安全问题无关。如果您觉得这个论坛不是获得答案的地方,请让我找到合适的地点。谢谢。(尽管任何人都很难想象 VBox 自己的论坛可能是错误的地方,但我没有看到对我的特定问题的答案或发布到适当类别的地方。)无论发生什么,请不要关闭我的问题至少没有指向更好的资源(我讨厌这种情况发生!)。再次感谢。
现在,问题是:virtualbox 的主机驱动程序如何计算要提供的虚拟 CPU 的总数?
(请注意,我不会回复那些没有真正阅读过问题的人的回答,或者至少首先要求更多澄清。我认为这是一个非常直截了当的问题。)
让我把问题分解一下,以便尽可能准确和简洁地说明我真正要问的问题。我很想知道 VirtualBox HOST 软件(可能是什么部分)如何确定在配置界面上出现多少 VIRTUAL CPU,用户可以在其中选择他们想应用于特定 VM 的 VCPU 数量。
我不是在问什么:总的来说,我不是在问虚拟化硬件等的奇迹;我了解多核和多线程、VTx 等。我不是在问我应该为特定的 VM 或应用程序使用多少。在我的问题中,我不是在寻求帮助来配置任何特定的虚拟机。我不是要任何人问我为什么我需要知道——我已经告诉过你了;我只是好奇。如果您对我的具体问题不感兴趣,那很好。同样,这只是一个简单直接的问题:VBox 是如何得出这个数字的?
我已经知道的:确实,至少一般来说,答案是物理 CPU 的 2 倍;好的,如果是这样,为什么是 2x 而不是 3x 或其他乘数?(我知道小数不适用于奇数的内核或线程;我只是尽可能地通用。)例如,在我的 Phenom II X6 上,VirtualBox 为我提供了多达 12 个 VCPU。如果答案是线程,那不可能,因为我的特定 Thuban 没有线程(有些 Thuban 有,有些没有)。不过,我的 Thuban 拥有的是超传输,而不是超线程。同样,我的旧 Phenom II X2 将允许在 Virtualbox 中使用 4 个 VCPU。
我已经阅读了上述网站上的大量回复,告诫用户不要在每个 VM 上使用多个 VCPU,因为这会增加开销(一方面,您必须运行 IOAPIC,这会导致性能下降)。我也读过一些帖子,其中的问题听起来像我的,但他们最终并没有给出答案。
答案是某种 sigma sum 还是对数公式?它是否足够复杂,超过了这个论坛的格式化功能?很难想象为什么很难得到这个问题的答案,我认为这个问题会被多次询问和回答。我真的很想知道为什么它通常看起来是 2x;为什么这是“神奇”数字。如果我阅读源代码(假设这是可用的),评论会解释原因吗?
我真的很感激和钦佩阅读和回答这个问题的灵魂,而不是其他没有被问到的问题。我也希望您不要将我重定向到 IRC 的黑暗和敌对频道;IRC 上有一些非常反社会的实体,他们的言论让我想起了犯罪心理上的一些未订阅者。请注意,我说的是“一些”——那里也有乐于助人的人。没有对抗的意思;我只是讨厌再去IRC了。如果您知道 IRC 上有一个特别有用的昵称,我也将不胜感激。
顺便说一句,我一直在谷歌上寻找这个问题和其他问题的答案,并阅读 SO、SE 和 SU 板,我看到有些人的回答是完全不相关的。这就是为什么我的语气听起来很刺耳的原因。这是我的第一篇文章,我希望回复会比我在 IRC 上的一些经验更积极。