我有英特尔 EX5620 CPU,它有4 个核心和 8 个线程。
cat /proc/cpuinfo is showing 8 cpus.
从 xen 的 wiki 页面来看,他们说最好将每个虚拟机分配给 CPU 核心以获得更好的性能。
那么在这种情况下,是否意味着如果我将一个核心分配给 dom0,将其余 3 个分配给每个 vm,我只能运行 3 个 vm。
OR
我可以将线程视为核心,从而运行 7 个 vm,每个 vm 将 CPU 固定到这些线程,并将一个 vm 用于 dom0。
有没有办法将 vms cpu 分配给线程而不是核心。这会有什么区别吗?
答案1
您得到的信息有误。Citrix 提供了一个公式来回答您关于 CPU 分配的基本问题。
XenServer 5.0 Update 3 管理指南 (p. 140)。http://support.citrix.com/article/CTX120713:为每个虚拟机的工作负载提供足够的虚拟 CPU (VCPU)。
不要为虚拟机分配超过其工作所需的 VCPU。如果虚拟机中的服务器只需要大约 300 MHz,则只需要 1 个 VCPU。只给它一个。如果它在您的 2.5GHz 四核机箱上定期有 3000MHz 的工作,请给它两个 VCPU;但不要给它三个或四个。虚拟机拥有的 VCPU 数量应该反映它必须完成的工作量。如果您的虚拟机有 2 个 VCPU,它应该有比 1 个物理核心可以及时完成的工作更多的工作。如果它有 4 个 VCPU,它应该有比 3 个物理核心可以及时完成的工作更多的工作。
As a formal application of these principles for workloads that require multi-VCPU virtual machines,
allocate VCPUs to maintain this constraint: (V - N) <= (P - 1), where:
V = Total VCPUs across all VMs
N = Number of running VMs
P = Number of Physical CPU cores