Многие из вас хотя бы раз задумывались о том, сколько виртуальных машин должно в среднем приходиться на один хост, а кроме того, в частности, сколько виртуальных процессоров (vCPU) могут исполняться на физических процессорах (pCPU) хост-сервера VMware ESXi.
На этот счет системные архитекторы часто дают следующие рекомендации (в соответствии с критичностью нагрузок в кластере):
Это общие рекомендации и, конечно же, не железные правила - отталкиваться нужно от имеющегося оборудования и характера нагрузок в виртуальных машинах.
Для того, чтобы регулировать это соотношение со стороны кластера балансировки нагрузки VMware DRS есть 2 специальные расширенные настройки:
MaxVcpusPerClusterPct - регулирует соотношение vCPU/pCPU на уровне всего кластера, не привязываясь к конкретным хостам ESXi (то есть сумма vCPU всех машин делится на сумму pCPU всех хостов).
MaxVCPUsPerCore - регулирует соотношение vCPU/pCPU на уровне каждого из хостов ESXi, то есть ни на одном из них это соотношение не может быть превышено.
Указываются эти расширенные настройки в разделе Configuration Parameters в vSphere Web Client при настройке DRS-кластера:
Но самое интересное - это то, что в vSpher Web Client эта настройка есть в GUI и регулирует параметр MaxVcpusPerClusterPct на уровне всего кластера (можно задать процент от 0 до 500, но разумно задавать значения от 100 до 500, если задать 500 - число vCPU может быть больше pCPU в пять раз):
А вот в vSphere Client - эта настройка уже MaxVCPUsPerCore, то есть задание CPU Overcommitment на уровне каждого из хостов ESXi, о чем и написано в интерфейсе:
Кстати, выставить эту настройку можно в диапазоне от 0 до 32.