"virsh vcpupin" и изоляция процессора в ESXi

Я пытаюсь запустить приложение в виртуальной машине на ESXi. Приложение запускает поток, чувствительный к высокой задержке. Он работает в режиме жесткого опроса, который почти всегда работает на 99,9% процессорного времени, и это ожидается.

Детали ВМ и сервера:

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

Если на ВМ больше ничего не запускается, проблем нет. Но если я запускаю другие приложения, потребляющие ЦП, на ВМ, поток, о котором я говорил ранее, начинает получать меньше циклов ЦП. Я подтвердил это, добавив несколько счетчиков, которые рассчитывают rdtsc()

На KVM это можно решить с помощью:

  • Закрепление виртуального ЦП на физическом процессоре с virsh vcpupin <domain> ...
  • Закрепление приложений на виртуальной машине для запуска на определенных виртуальных ЦП

Как работает планировщик процессора ESX? Есть ли способ сопоставить виртуальные ЦП с физическим процессором на ESXi?

Когда я контролирую esxtop на хосте я вижу, что поток, который занимает 99,9% ЦП, не всегда работает на одном и том же ядре. Он продолжает двигаться вокруг разных ядер. И несколько раз я вижу, что он разделяет физическое ядро ​​с другими приложениями, интенсивно использующими процессор.

0 ответов

Другие вопросы по тегам