Ограничение количества vCPU для ВМ
Для оптимизации производительности виртуальных машин (ВМ) и минимизации задержек при вычислениях, необходимо учитывать количество создаваемых vCPU и не выходить за лимиты, указанные в статье: Ограничения для параметров виртуальных машин.
Пример сопоставления CPU и NUMA-узла
В CPU применяется логическая структура — NUMA-узел. Часто NUMA-узел назначается в соотношении 1:1 к физическому процессору. Если на сервере имеются два процессора по 28 ядер и 1,5 ТБ памяти, то один физический NUMA-узел будет иметь 28 ядер и 768 ГБ RAM.
Определение количества vCPU для ВМ
Что необходимо учесть при определении количества vCPU для ВМ:
Гипервизор VMware, Inc. применяет виртуальные NUMA-узлы, которые назначает к физическим сокетам (процессорам).
Используются два основных типа ВМ, в которых:
- ВМ, в которых количество vCPU/RAM не превышает количество vCPU в NUMA-узле.
- ВМ, в которых количество vCPU и/или RAM превышает количество vCPU/RAM в NUMA-узле.
ВМ размещается в рамках одного физического NUMA-узла и получает максимум производительности.
VMware vSphere Server, начиная с версии 6.5, умеет выравнивать ресурсы ВМ по физическим NUMA-узлам, чтобы минимизировать интерконнект. Взаимодействие процессора и памяти осуществляется таким образом, что каждый процессор обращается только к памяти, которая взаимодействует непосредственно с ним. В этом случае задержки на вычисления возникают только при обращении через IO-шину.
В решении размеры RAM и L3 Cache не предопределены. Поэтому при создании ВМ с vCPU (pSocket CPUs) необходимо указать параметр «cores/socket» так, чтобы виртуальные сокеты ВМ равнялись количеству физических сокетов (обычно 2). В этом случае vNUMA-узлы обращаются к своей памяти и к своему L3-cache, что важно для приложений критичных к задержкам (latencу). Для этого необходимо вручную править данный параметр и знать на каких процессорах будут размещены ВМ.
Рекомендуется не использовать опцию горячего добавления vCPU. При включении опции горячего добавления vCPU отключается механизм автоматического распределения ВМ по NUMA-узлам. В этом случае необходимо ручное выравнивание ресурсов ВМ по физическим NUMA-узлам, иначе производительность ВМ может быть существенно снижена.
VMware, Inc. выработали правила размещения ВМ:
-
While there are many advanced vNUMA settings, only in rare cases do they need to be changed from the defaults.
-
Always configure the virtual machine vCPU count to be reflected as Cores per Socket, until you exceed the physical core count of a single physical NUMA node OR until you exceed the total memory available on a single physical NUMA node.
-
When you need to configure more vCPUs than there are physical cores in the NUMA node, OR if you assign more memory than a NUMA node contains, evenly divide the vCPU count across the minimum number of NUMA nodes.
-
Don’t assign an odd number of vCPUs when the size of your virtual machine, measured by vCPU count or configured memory, exceeds a physical NUMA node.
-
Don’t turn on vCPU Hot Add unless you’re okay with vNUMA being turned off.
-
Don’t create a VM larger than the total number of physical cores of your host.
Эти правила можно считать официальной рекомендацией VMware, Inc., так как на них ссылаются Performance Best Practices for VMware.
Источники
- Пример сопоставления CPU и NUMA-узла
- Определение количества vCPU для ВМ
- Источники