我正在开发一个仿真工具来模拟VM环境中的虚拟机行为和迁移。
我使用DevStack在大学廉价的普通硬件电脑上部署了一个带有4个节点的OpenStack集群。 我记得我无法运行比实际vCPU更多的虚拟机。 我不确定这是DevStack的限制,还是因为我使用普通的PC硬件。
假设每个虚拟机只有一个CPU,我可以在一个带有两个芯片的CPU,每芯片8个核心(总共16个核心)和每个核心2个线程(总共32个线程)的主机上运行多less个虚拟机,就像[ 1]?
我认为可以运行32个虚拟机(每个虚拟机一个CPU)是合理的吗? 我可以多跑吗? 每个线程/核心可以运行多less个虚拟机?
[1]示例中使用的规格: http : //www.spec.org/power_ssj2008/results/res2012q4/power_ssj2008-20121031-00575.html
非常感谢。
OpenStack确实可以让你过量使用CPU资源 ,但是你可以过量使用的数量可以被本地configuration所限制。 默认情况下,比率为16:1,这意味着您可以在所有运行的VM上为每个物理CPU核心运行最多16个虚拟CPU核心。
由于大多数工作负载不是CPU密集型的,所以过度使用CPU通常是有意义的。 但是一些工作负载可能非常耗费CPU资源,对于那些可能需要限制过度使用的工作负载。 大学生经营的东西往往属于这一类… 🙂
如果过度使用比率更改为1:1,则根本无法过度使用CPU,并且将被限制为不会运行比物理CPU内核更多的vCPU。 这似乎是您的DevStack问题最有可能的解释。
另请注意,单个VM不能拥有比计算节点中的现有物理CPU更多的vCPU。 但是运行更多的虚拟机比物理CPU核心没有问题。