26 июля 2021 г.

VMware и NUMA: результаты оптимизации конфигурации памяти VM

В прошлый раз в посте "VMware и NUMA: выбор правильного размера памяти VM" я рассказал о NUMA архитектуре, NUMA узлах (NUMA nodes) и о том, как оптимально сконфигурировать размер памяти виртуальной машины с учётом этих особенностей. Показал на своём примере, что можно создать не оптимально работающую виртуальную машину. При работе такой виртуальной машины процессор, обращаясь к оперативной памяти, не всегда может попадать в локальный NUMA узел. Это увеличивает задержки при обращении к памяти и снижает производительность виртуальной машины и приложений, работающих на ней.

После публикации поста мне удалось изменить конфигурацию одной из не оптимально настроенных виртуальных машин. И сегодня я хочу рассказать о результатах.

Итак, я говорю про виртуальную машину из прошлого поста с 8 vCPU и 96 Гб памяти, которая работает на сервере с NUMA узлом = 16 ядер (с учётом HT) + 96 Гб. Как вы помните, по статистике из команды esxtop при работе данной виртуальной машины только в 92% случаях процессор попадал в локальный NUMA узел (рис. 1).

Рис. 1. Статистика по NUMA виртуальной машины 8 vCPU + 96 Гб до оптимизации.

Проанализировав требования к оперативной памяти со стороны приложений, я понял, что спокойно могу снизить количество оперативной памяти виртуальной машины. Изменил настройки, уменьшив оперативную память VM с 96 Гб до 80 Гб (рис. 2). 

Рис. 2. Количество оперативной памяти сервера после изменения конфигурации.

И картина тут же поменялась (рис. 3). Скриншот сделан на системе, проработавшей 2 недели.

Рис. 3. Статистика по NUMA виртуальной машины 8 vCPU + 96 Гб после оптимизации.

Во-первых, процент попадания в локальный NUMA узел стал 100% (параметр N%L, а NRMEM = 0), что не может не радовать. Во-вторых, теперь все процессы виртуальной машины выполняются на одном узле: параметр GST_ND0 = 81 582, а остальные GST_ND* = 0. Таким образом, на данный момент производительность процессов данной виртуальной машины в плане NUMA архитектуры оптимальна.

Изменить настройки памяти второй большой виртуальной машины пока не представляется возможным. Там по статистике, как и прежде, процент попадания в локальный NUMA узел - 92-93%. А ведь случай с этой машиной интереснее. Виртуальная машина большая и в один NUMA узел, даже после изменения конфигурации, не поместится.

Пишите в комментариях, какая статистика у вас и занимались ли вы NUMA оптимизацией на своих проектах.


Автор: Шиболов Вячеслав Анатольевич


Комментариев нет:

Отправить комментарий