我必须在 Xen 服务器上托管大约 12 台虚拟机。它们都是非常轻量级的 Linux 机器。意味着不占用大量资源。
我有一台带有 4 核单 CPU 的 xen 服务器。那么我可以在所有的虚拟机之间共享 2-3 个 CPU 吗?
答案1
是的,Xen 虚拟机管理程序(以及其他虚拟机管理程序)只会将可用 CPU 的时间片共享给您的虚拟机。而且,您可以超额预订 vCPU 数量。您可以将 vCPU 固定到物理 CPU 核心,但这并不是必需的,在这种情况下,您可以让虚拟机管理程序决定哪个 VM 获得一定数量的物理 CPU 核心的时间片。
从虚拟机的角度来看,您会注意到某些 CPU 时间会在某些时间点被窃取。例如,当请求大量 CPU 时间但超额预订时,top
百分比会上升到 0 以上。st
Cpu(s): 0.7%us, 0.7%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
答案2
是的,这不是问题,只要确保密切监视这些服务器的资源即可。
根据我的经验,如今磁盘 i/o 是一个比 CPU 能力和内存更大的问题……
但是,您应该将一个 CPU 核心和一些 RAM 专用于 dom0。dom0 将根据分配的 RAM 设置一些缓冲区,这可能会导致在运行期间 RAM 缩小(因为它分配给 domU)时出现一些奇怪的行为。此外,您还需要确保 dom0 始终能够执行命令,即使某些 domU 阻止了所有核心。固定到 dom0 的核心不会分配给 domU。要检查 dom0 和 domU 的内存和 CPU 资源,请使用xm top
为了实现这一点,请使用以下内核选项
dom0_mem=1024M dom0_max_vcpus=1 dom0_vcpus_pin
您无需进行任何进一步的配置即可共享 CPU。只需添加vcpus=number of cores
到您的 xen domU 配置文件中以指定单个 domU 可以使用多少个虚拟核心即可。如果您没有明确将某些核心固定到 domU(cpus=
在配置文件中使用),dom0 将相应地在所有可用的 CPU/核心上分配负载。