有没有办法让虚拟机只有一个核心而在主机上使用三个核心?

bra*_*ton 18 linux virtual-machines windows-server-2008-r2

可能的重复:
VM 上的单个虚拟核心可以使用超过 1 个物理核心吗?

我是 Minecraft 服务器的共同所有者,该服务器每天都在变大,但随着我们变得越来越大,我们遇到了 Minecraft 及其编码方式的限制。游戏没有被编码为使用多个内核,而是只使用一个内核。因此,与一位朋友交谈时,他建议看看是否有可能让虚拟机只有一个虚拟核心,而在主机上使用四个核心中的三个。我做了一些研究,似乎找不到任何答案。主机操作系统是Windows还是Linux都没有关系,我只是好奇是否可以做到。

如果它可以完成或自动完成,您能否提供链接,以便我可以阅读并了解更多信息......我是虚拟机的新手,所以放轻松。

Jan*_*nen 37

九名妇女在一个月内无法生育。抱歉,至少目前不可能在 VM 环境中将 CPU 粘合在一起。但这是一个有趣的想法!

  • +1 伟大而有趣的比喻! (12认同)
  • 然而,九个女人 _are_ 能够每个月生一个孩子,管道 ftw :)。 (3认同)
  • @SverreRabbelier 总的来说,他们仍然需要 81 个月才能生出 9 个婴儿。它们是并行工作还是串行工作并不重要。 (2认同)

Tom*_*Tom 8

没有意义。你不能用物理核心神奇地制造一个超级核心。Hyper-Visors 不能要求你的核心。


cfi*_*cfi 8

截至今天,所有答案似乎都是正确的:没办法。

我想在这些陈述中添加一些内容:

关于“自动并行化”的维基百科

自动并行化是采用给定的串行算法并尝试找到可以并行执行的命令序列,然后将这些序列调度和分派到可用(硬件:cpu)资源,然后加入结果(=数据)的过程返回进一步处理。

问题不仅在于找到不相互依赖并因此能够并行处理的序列。但通信开销也可能变得过高。考虑一下您的特定问题,其中一个 Minecraft 世界将以某种方式分割到不同的 CPU 上:如果您以几何方式分割世界,让我们说 := 9 个方块,那么在边界处,各个子世界需要交换任何世界的改变或居民的运动。

虽然上述是典型的“分而治之”方法,并且问题的几何拆分是并行化的广泛解决方案,但它通常是手工编码的,利用问题设计者的知识 - 在这种情况下 - 游戏开发商有。

您提出的想法将涉及完全未知的算法的一些自动化,因为虚拟“超级”服务器无法知道 Minecraft 内部的行为方式。所以这个问题的唯一角度是执行的汇编代码。在这么低的水平上,很难——目前似乎不可能——想出一个有任何优点的解决方案。

谷歌现在可以搜索科学出版物。如果你真的有兴趣,我会查看相关会议的出版物。IEEEACM等组织可能是一个很好的起点。


Mas*_*imo 6

不,没有管理程序(至少我知道)可以使用两个 2-GHz CPU 并从中创建一个虚拟的 4-Ghz CPU。