closuresUbuntu 14.04中的vCPU是否会影响vmware的cpu调度程序?

我有一个有6个CPU的Ubuntu VMWare虚拟机,但很less看到1以上的负载。它运行在vSphere 5.5集群中。

现在VMWare的CPU调度器必须清除6个CPU来处理这个虚拟机,我想减lessCPU数量并提高整个主机的性能。 不过,我想这样做没有宕机到6 CPU的虚拟机。

我已经运行以下命令来禁用三个CPU而不会中断。

echo 0 | sudo tee /sys/devices/system/cpu/cpu5/online echo 0 | sudo tee /sys/devices/system/cpu/cpu4/online echo 0 | sudo tee /sys/devices/system/cpu/cpu3/online 

通过禁用OS内核中的这些CPU,实际上是否向ESXi主机发送了相应的信号,只需要清除其中的3个内核即可在该服务器上执行操作,而不是6个?

如果这不起作用,有没有另一种方式来做到这一点,而无需在虚拟机上停机?

这不会在内核之下发送任何信号。 它所做的是限制你的调度程序在这些内核上创build新的进程,并腾出那些退出进程的内核。

这将允许你安全地热插拔他们 – 在你的情况下 – 减less你的核心数量三。 效果是立竿见影的,尽pipe你的系统可能会在很短的时间内冻结(less于几毫秒)。

您需要为您的虚拟机启用vCPU热插拔才能使其工作。 启用它也将禁用vNUMA,这是一种内存带宽优化技术,可以帮助您在高负载的情况下 – 虽然听起来不像这是你的情况。