“virsh vcpupin”和ESXi中的CPU隔离

时间:2017-06-26 20:36:50

标签: cpu kvm esxi vcpu

我正在尝试在ESXi上的VM中运行应用程序。该应用程序运行高度延迟敏感的线程。它以紧密的轮询模式运行,几乎总是以CPU的99.9%运行,这是预期的。

VM和服务器的详细信息:

Number of vCPUs allocated to the VM: 36
Number of sockets: 2
Number of cores per socket: 10
Total number of logical CPUs on the server: 40
Hyper threading : Enabeld
ESXi version: 6.50

如果VM上没有其他任何内容,则没有问题。但是如果我在VM上运行其他CPU消耗应用程序,我之前谈到的线程开始获得较少的CPU周期。我已经通过添加一些计算rdtsc()

的计数器来验证这一点

在KVM上,可以通过以下方式解决:

  • 使用virsh vcpupin <domain> ...
  • 将vCPU固定到物理CPU
  • 将VM上的应用程序固定为在特定vCPU上运行

ESX CPU调度程序如何工作?有没有办法将vCPU映射到ESXi上的物理cpu?

当我在主机上监视esxtop时,我发现占用99.9%CPU的线程并不总是在同一个核心上运行。它不断在不同的核心周围移动。有几次,我发现它与其他CPU密集型应用程序共享物理核心。

0 个答案:

没有答案