在Xen的12个虚拟机中共享4个核心的单CPU是否可能?

我必须在Xen服务器上托pipe大约12台虚拟机。 所有这些都是非常轻量级的Linux机器。 意味着不是资源密集型的。

我有一个xen服务器与4个核心的单个CPU。 那么我可以在所有虚拟机中共享2-3个CPU吗?

是的,Xen虚拟机pipe理程序(以及其他人)只会将可用CPU的时间片共享到您的虚拟机。 是的,你可以超额预定vCPU的数量。 您可以将vCPU固定到物理CPU内核,但完全不需要,在这种情况下,您可以让虚拟机pipe理程序决定哪些虚拟机获得一定数量的物理CPU内核时间片。

从虚拟机的angular度来看,你会发现某些CPU时间在某些时候会被盗用。 例如,在请求大量CPU时间但是超额预订的情况下, top的百分比大于0。

 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 

是的,这不是问题,只要确保你密切监视这台服务器的资源。

在我的经验中,磁盘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 

您不需要进行任何进一步的configuration,以便共享CPU。 只需将vcpus=number of cores添加到xen domUconfiguration文件中即可指定单个domU可以使用多less个虚拟内核。 如果你没有明确地将一些内核连接到一个domU(在configuration文件中使用cpus= ),dom0会相应地在所有可用的CPU /内核上分配负载。