Virtual machine cpu usage vmware что это

Оптимизация CPU в виртуальном окружении vSphere

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Одна из причин деградации скорости работы сервиса — это падение производительности процессора. При использовании локальных вычислительных систем без виртуализации их падение влияет только на сам сервер и запущенные на нем приложения. Установленный гипервизор, например от VMware, делит ресурсы физического процессора на все виртуальные машины, и аномальная нагрузка на одну из них может привести к критическому падению производительности на других.

Так же, как и в локальных средах, администратор виртуальной инфраструктуры должен уметь быстро определить причину падения производительности CPU в среде vSphere, используя наиболее информативные метрики.

На потребление ресурсов процессора влияет множество факторов, поэтому мониторинг и контроль ресурсоемкости должны быть хорошо проработаны. Типичными причинами перегрузки могут стать несколько виртуальных машин, на которых запущены очень «прожорливые» приложения, потребляющие слишком много ресурсов, или неэффективно настроенная конфигурация одной из виртуальных машин. В любом случае, если не отследить и вовремя не устранить проблему с производительностью, это может серьезным образом сказаться на критичных для бизнеса сервисах.

Топ-6 проблем с производительностью CPU

Проблема с этим параметром заключается в том, что виртуальная машина ожидает запуска в состоянии полной готовности, но не может быть запущена, так как гипервизор не находит для нее ресурсов физического процессора. Необходимо, чтобы Ready Time был меньше 10%, иначе повышается вероятность зависания гостевой операционной системы и сбоев в работе. Хотя некоторые приложения не так чувствительны к этому параметру и работают нормально, но лучше не допускать больше 10%.

Параметр Co-stoptime показывает, что виртуальных процессоров vCPU больше, чем необходимо. Как это ни парадоксально, порой большое число vCPU снижает, а не увеличивает производительность виртуальной машины.

Этот параметр ограничивает использование процессора виртуальной машиной, задает лимит. Соответственно, если машине надо больше мощности, она ее получит только в рамках предельного значения — для некоторых приложений это приведет к падению производительности.

Параметр, который отслеживает загрузку процессора хоста. Когда средняя загрузка будет более 75% или пиковая достигнет 90%, узел vSphere решит, что ресурсов CPU не хватает, как результат — остановка виртуальных машин или проблемы с запуском.

Показывает перегрузку виртуального процессора. Если запущенное на виртуальной машине приложение «ест» больше 90% ресурсов процессора, производительность будет деградировать. Решение: добавить еще vCPU или разобраться с приложением — может, оно работает нестабильно или просто зависло.

Вот этот параметр как раз поможет определить некорректную настройку приложения или нехватку других ресурсов сервера (память, диск), когда добавление vCPU не решает проблему.

Имитируем загрузку CPU и изучаем особенности

Чтобы проверить корректность работы виртуального сервера, необходимо в тестовой среде запустить скрипт загрузки CPU и проанализировать поведение машины. Для этого в VMware vSphere Power CLI запускаем скрипт Start CPU Test.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Скрипт запускает две виртуальные машины и показывает их удаленные рабочие столы. На машинах PERF-WORKER-01A и PERF-WORKER-01B имитируется сильная нагрузка на vCPU и отображается производительность в режиме реального времени. В нашем случае она составляет около 15 000.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Теперь необходимо в окне vSphere зайти на вкладку мониторинга производительности виртуальной машины PERF-WORKER-01A и для отображения расширенных параметров включить опцию Advanced –> Chart Options.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Теперь мы можем выбрать те счетчики, которые позволят нам отследить производительность процессора и выявить проблемы.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Мы рекомендуем обратить внимание на следующие счетчики:

Выявление проблем путем анализа показателей счетчиков

В процессе тестирования обратим внимание на то, сколько ресурсов необходимо потреблять виртуальной машине и сколько она использует фактически.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

На скриншоте мы видим, что значение счетчика Demand (потребление) сильно больше, чем значение счетчика Use (использование). А показатель Ready Time равен 9977 ms. Чтобы перевести значение из миллисекунд в проценты для режима реального времени (real-time), необходимо показатель Ready Time разделить на 200 — в случае одного используемого vCPU. Или воспользоваться калькулятором. Для нашего теста получилось значение 49,89%, что в значительной мере превышает рекомендуемые 10%, а значит, наблюдается серьезная проблема с производительностью.

Также рекомендуем посмотреть статистику CPU на уровне хоста. Для этого выбрать нужный узел на вкладке Monitor-Performance и включить опцию Advanced — теперь станут видны счетчики производительности хоста.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Отследим статистику нагрузки CPU на уровне физического хоста.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

На скриншоте видно, что один из процессоров хоста нагружен на 100%, тогда как остальные практически не задействованы. Это является аномальным и сигнализирует о наличии проблемы.

Чтобы решить эту проблему, проверим правильность конфигураций тестовых виртуальных машин.

Проверка параметров виртуальных машин

Для проверки параметров виртуальной машины VMPERF-WORKER-01A выбираем в меню Actions команду Edit Settings.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Теперь проверим параметр CPU affinity, который может быть причиной возникновения такой аномалии.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

В нашем случае его значение равно единице — это означает, что данной виртуальной машине назначен только один физический процессор и другие она использовать не может, даже в случае 100% нагрузки. Для правильной балансировки нагрузки между физическими процессорами хоста необходимо очистить это значение (оставить параметр пустым) и нажать «ОК». Те же манипуляции необходимо проделать и с настройками виртуальной машины PERF-WORKER-01B.

Мы не рекомендуем для виртуальных машин в среде VMware вручную выставлять значение affinity. Платформа vSphere отлично справляется с автоматической балансировкой нагрузки виртуальных машин между физическими процессорами. Также заданный вручную параметр affinity не позволяет воспользоваться технологией vMotion, что уменьшает функциональность виртуальной инфраструктуры.

Заключение

У надежных облачных провайдеров настроены системы мониторинга и контроля использования ресурсов. Но аренда виртуальной инфраструктуры IaaS дает клиенту широкие возможности настройки машин, а значит — и создания потенциальных ошибок. Умение определить и устранить проблемы самостоятельно крайне важно.

Мы рассмотрели проблемы, связанные с производительностью CPU, и рассказали, как с помощью тестов и счетчиков обнаружить слабые места виртуальной инфраструктуры. На виртуальную инфраструктуру надейся, но и сам за всем следи!

Хотите сообщить важную новость? Пишите в Телеграм-бот.

А также подписывайтесь на наш Телеграм-канал.

😱 Разработчик прошел 3 собеседования в Facebook, Amazon и Google. И рассказал про самую кошмарную часть — behavioral interview. Читайте, как это было.

Источник

Анализ производительности виртуальной машины в VMware vSphere. Часть 1: CPU

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Если вы администрируете виртуальную инфраструктуру на базе VMware vSphere (или любого другого стека технологий), то наверняка часто слышите от пользователей жалобы: «Виртуальная машина работает медленно!». В этом цикле статей разберу метрики производительности и расскажу, что и почему «тормозит» и как сделать так, чтобы не «тормозило».

Буду рассматривать следующие аспекты производительности виртуальных машин:

Для анализа производительности нам понадобятся:

Немного теории

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

В ESXi за работу каждого vCPU (ядра виртуальной машины) отвечает отдельный процесс – world в терминологии VMware. Также есть служебные процессы, но с точки зрения анализа производительности ВМ они менее интересны.

Процесс в ESXi может находиться в одном из четырех состояний:

Основные счетчики производительности CPU виртуальной машины

CPU Usage, %. Показывает процент использования CPU за заданный период.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Как анализировать? Если ВМ стабильно использует CPU на 90% или есть пики до 100%, то у нас проблемы. Проблемы могут выражаться не только в «медленной» работе приложения внутри ВМ, но и в недоступности ВМ по сети. Если система мониторинга показывает, что ВМ периодически отваливается, обратите внимание на пики на графике CPU Usage.

Есть стандартный Аlarm, который показывает загрузку CPU виртуальной машины:

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Что делать? Если у ВМ постоянно зашкаливает CPU Usage, то можно задуматься об увеличении количества vCPU (к сожалению, это не всегда помогает) или переносе ВМ на сервер с более производительными процессорами.

CPU Usage in Mhz

В графиках на vCenter Usage в % можно посмотреть только по всей виртуальной машине, графиков по отдельным ядрам нет (в Esxtop значения в % по ядрам есть). По каждому ядру можно посмотреть Usage in MHz.

Как анализировать? Бывает, что приложение не оптимизировано под многоядерную архитектуру: использует на 100% только одно ядро, а остальные простаивают без нагрузки. Например, при дефолтных настройках бэкапа MS SQL запускает процесс только на одном ядре. В итоге резервное копирование тормозит не из-за медленной скорости дисков (именно на это изначально пожаловался пользователь), а из-за того, что не справляется процессор. Проблема была решена изменением параметров: резервное копирование стало запускаться параллельно в несколько файлов (соответственно, в несколько процессов).

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это
Пример неравномерной нагрузки ядер.

Также бывает ситуация (как на графике выше), когда ядра нагружены неравномерно и на некоторых из них есть пики в 100%. Как и при загрузке только одного ядра, alarm по CPU Usage не сработает (он по всей ВМ), но проблемы с производительностью будут.

Что делать? Если ПО в виртуальной машине нагружает ядра неравномерно (использует только одно ядро или часть ядер), нет смысла увеличивать их количество. В таком случае лучше переместить ВМ на сервер с более производительными процессорами.

Также можно попробовать проверить настройки энергопотребления в BIOS сервера. Многие администраторы включают в BIOS режим High Performance и тем самым отключают технологии энергосбережения C-states и P-states. В современных процессорах Intel используется технология Turbo Boost, которая увеличивает частоту отдельных ядер процессора за счет других ядер. Но она работает только при включенных технологиях энергосбережения. Если мы их отключаем, то процессор не может уменьшить энергопотребление ядер, которые не нагружены.

VMware рекомендует не отключать технологии энергосбережения на серверах, а выбирать режимы, которые максимально отдают управление энергопотреблением гипервизору. При этом в настройках энергопотребления гипервизора нужно выбрать High Performance.

Если у вас в инфраструктуре отдельные ВМ (или ядра ВМ) требуют повышенную частоту CPU, корректная настройка энергопотребления может значительно улучшить их производительность.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

CPU Ready (Readiness)

Если ядро ВМ (vCPU) находится в состоянии Ready, оно не выполняет полезную работу. Такое состояние возникает, когда гипервизор не находит свободное физическое ядро, на которое можно назначить процесс vCPU виртуальной машины.

Как анализировать? Обычно если ядра виртуальной машины находятся в состоянии Ready больше 10% времени, то вы заметите проблемы с производительностью. Проще говоря, больше 10% времени ВМ ждет доступности физических ресурсов.

В vCenter можно посмотреть 2 счетчика, связанных с CPU Ready:

Значения счетчика Ready можно посмотреть также в исторической перспективе. Это полезно для установления закономерностей и для более глубокого анализа проблемы. Например, если у виртуальной машины начинаются проблемы с производительностью в какое-то определенное время, можно сопоставить интервалы повешенного значения CPU Ready с общей нагрузкой на сервер, где данная ВМ работает, и принять меры по снижению нагрузки (если DRS не справился).

Ready в отличие от Readiness показывается не в процентах, а миллисекундах. Это счетчик типа Summation, то есть он показывает, сколько времени за период измерения ядро ВМ находилось в состоянии Ready. Перевести данное значение в проценты можно по несложной формуле:

(CPU ready summation value / (chart default update interval in seconds * 1000)) * 100 = CPU ready %

Например, для ВМ на графике ниже пиковое значение Ready на всю виртуальную машину получится следующим:

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

При подсчете значения Ready в процентах стоит обращать внимание на два момента:

Рассчитаем Ready на основе данных из графика ниже. (324474/(20*1000))*100 = 1622% на всю ВМ. Если смотреть по ядрам получится уже не так страшно: 1622/64 = 25% на ядро. В данном случае обнаружить подвох довольно просто: значение Ready нереалистичное. Но если речь идет о 10–20% на всю ВМ с несколькими ядрами, то по каждому ядру значение может быть в пределах нормы.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Что делать? Высокое значение Ready говорит о том, что серверу не хватает ресурсов процессора для нормальной работы виртуальных машин. В такой ситуации остается только уменьшить переподписку по процессору (vCPU:pCPU). Очевидно, этого можно добиться, уменьшив параметры существующих ВМ или путем миграции части ВМ на другие серверы.

Co-stop

Как анализировать? Данный счетчик также имеет тип Summation и переводится в проценты аналогично Ready:

(CPU co-stop summation value / (chart default update interval in seconds * 1000)) * 100 = CPU co-stop %

Здесь также нужно обращать внимание на количество ядер на ВМ и на интервал измерения.
В состоянии сostop ядро не выполняет полезную работу. При правильном подборе размера ВМ и нормальной нагрузке на сервер счетчик со-stop должен быть близок к нулю.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это
В данном случае нагрузка явно ненормальная:)

Что делать? Если на одном гипервизоре работают несколько ВМ с большим количеством ядер и есть переподписка по CPU, то счетчик co-stop может вырасти, что приведет к проблемам с производительностью данных ВМ.

Также co-stop вырастет, если для активных ядер одной ВМ используются треды на одном физическом ядре сервера со включенным hyper-treading. Такая ситуация может возникнуть, например, если у ВМ больше ядер, чем физически есть на сервере, где она работает, или если для ВМ включена настройка «preferHT». Про эту настройку можно прочитать здесь.

Чтобы избежать проблем с производительностью ВМ из-за высокого сo-stop, выбирайте размер ВМ в соответствии с рекомендациями производителя ПО, которое работает на этой ВМ, и с возможностями физического сервера, где работает ВМ.

Не добавляйте ядра про запас, это может вызвать проблемы с производительностью не только самой ВМ, но и ее соседей по серверу.

Другие полезные метрики CPU

Run – сколько времени (мс) за период измерения vCPU находился в состоянии RUN, то есть собственно выполнял полезную работу.

Idle – сколько времени (мс) за период измерения vCPU находился в состоянии бездействия. Высокие значения Idle – это не проблема, просто vCPU было «нечего делать».

Wait – сколько времени (мс) за период измерения vCPU находился в состоянии Wait. Так как в данный счетчик включается IDLE, высокие значения Wait также не говорят о наличии проблемы. А вот если при высоком Wait IDLE низкий, значит ВМ ждала завершения операций ввода/вывода, а это, в свою очередь, может говорить о наличии проблемы с производительностью жесткого диска или каких-либо виртуальных устройств ВМ.

Max limited – сколько времени (мс) за период измерения vCPU находился в состоянии Ready из-за установленного лимита по ресурсам. Если производительность необъяснимо низкая, то полезно проверить значение данного счетчика и лимит по CPU в настройках ВМ. У ВМ действительно могут оказаться выставлены лимиты, о которых вы не знаете. Например, так происходит, когда ВМ была склонирована из шаблона, на котором был установлен лимит по CPU.

Swap wait – сколько времени за период измерения vCPU ждал операции с VMkernel Swap. Если значения данного счетчика выше нуля, то у ВМ точно есть проблемы с производительностью. Подробнее про SWAP поговорим в статье про счетчики оперативной памяти.

ESXTOP

Если счетчики производительности в vCenter хороши для анализа исторических данных, то оперативный анализ проблемы лучше производить в ESXTOP. Здесь все значения представлены в готовом виде (не нужно ничего переводить), а минимальный период измерения 2 секунды.
Экран ESXTOP по CPU вызывается клавишей «c» и выглядит следующим образом:

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Для удобства можно оставить только процессы виртуальных машин, нажав Shift-V.
Чтобы посмотреть метрики по отдельным ядрам ВМ, нажмите «e» и вбейте GID интересующей ВМ (30919 на скриншоте ниже):

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Кратко пройдусь по столбцам, которые представлены по умолчанию. Дополнительные столбцы можно добавить, нажав «f».

NWLD (Number of Worlds) – количество процессов в группе. Чтобы раскрыть группу и увидеть метрики для каждого процесса (например, для каждого ядра многоядерной ВМ), нажмите “e”. Если в группе больше одного процесса, то значения метрик для группы равны сумме метрик для отдельных процессов.

%USED – сколько циклов CPU сервера использует процесс или группа процессов.

%RUN – сколько времени за период измерения процесс находился в состоянии RUN, т.е. выполнял полезную работу. Отличается от %USED тем, что не учитывает hyper-threading, frequency scaling и время, затраченное на системные задачи (%SYS).

%SYS – время, затраченное на системные задачи, например: обработку прерываний, ввода/вывода, работу сети и пр. Значение может быть высоким, если на ВМ большой ввод/вывод.

%OVRLP – сколько времени физическое ядро, на котором выполняется процесс ВМ, потратило на задачи других процессов.

Данные метрики соотносятся между собой следующим образом:

%USED = %RUN + %SYS — %OVRLP.

Обычно метрика %USED является более информативной.

%WAIT – сколько времени за период измерения процесс находился в состоянии Wait. Включает IDLE.

%IDLE – сколько времени за период измерения процесс находился в состоянии IDLE.

%SWPWT – сколько времени за период измерения vCPU ждал операции с VMkernel Swap.

%VMWAIT – сколько времени за период измерения vCPU находилось в состояния ожидания события (обычно ввода/вывода). Аналогичного счетчика нет в vCenter. Высокие значения говорят о проблемах с вводом/выводом на ВМ.

%WAIT = %VMWAIT + %IDLE + %SWPWT.

Если ВМ не использует VMkernel Swap, то при анализе проблем с производительностью целесообразно смотреть на %VMWAIT, так как данная метрика не учитывает время, когда ВМ ничего не делала (%IDLE).

%RDY – сколько времени за период измерения процесс находился в состоянии Ready.

%CSTP – сколько времени за период измерения процесс находился в состоянии сostop.

%MLMTD – сколько времени за период измерения vCPU находился в состоянии Ready из-за установленного лимита по ресурсам.

%WAIT + %RDY + %CSTP + %RUN = 100% – ядро ВМ все время находится в каком-то из этих четырех состояний.

CPU на гипервизоре

В vCenter есть также счетчики производительности CPU для гипервизора, но они не представляют из себя ничего интересного – это просто сумма счетчиков по всем ВМ на сервере.
Удобнее всего смотреть состояние CPU на сервере на вкладке Summary:

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Для сервера, как и для виртуальной машины, есть стандартный Alarm:

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

При высокой нагрузке на CPU сервера у ВМ, работающих на нем, начинаются проблемы с производительностью.

В ESXTOP данные о загрузке CPU сервера представлены в верхней части экрана. Помимо стандартного CPU load, который малоинформативен для гипервизоров, есть еще три метрики:

CORE UTIL(%) – загрузка ядра физического сервера. Данный счетчик показывает, сколько времени за период измерения ядро выполняло работу.

PCPU UTIL(%) – если включен hyper-threading, то на каждое физическое ядро приходится два потока (PCPU). Данная метрика показывает, сколько времени каждый поток выполнял работу.

PCPU USED(%) – то же, что PCPU UTIL(%), но учитывает frequency scaling (либо снижение частоты ядра в целях энергосбережения, либо повышение частоты ядра за счет технологии Turbo Boost) и hyper-threading.

PCPU_USED% = PCPU_UTIL% * эффективную частоту ядра / номинальную частоту ядра.

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это
На этом скриншоте для некоторых ядер из-за работы Turbo Boost’а значение USED больше 100%, так как частота ядра выше номинальной.

Пара слов о том, как учитывается hyper-threading. Если процессы исполняются 100% времени на обоих потоках физического ядра сервера, при этом ядро работает на номинальной частоте, то:

В ESXTOP также есть экран с параметрами энергопотребления CPU сервера. Здесь можно посмотреть, используются ли сервером технологии энергосбережения: C-states и P-states. Вызывается клавишей «p»:

Virtual machine cpu usage vmware что это. Смотреть фото Virtual machine cpu usage vmware что это. Смотреть картинку Virtual machine cpu usage vmware что это. Картинка про Virtual machine cpu usage vmware что это. Фото Virtual machine cpu usage vmware что это

Стандартные проблемы производительности CPU

Напоследок пробегусь по типичным причинам возникновения проблем с производительностью CPU ВМ и дам короткие советы их решению:

Не хватает тактовой частоты ядра. Если нет возможности перевести ВМ на более производительные ядра, можно попробовать изменить настройки энергопотребления, чтобы Turbo Boost работал эффективнее.

Неправильный сайзинг ВМ (слишком много/мало ядер). Если поставить мало ядер, будет высокая загрузка CPU ВМ. Если много, словите высокий co-stop.

Большая переподписка по CPU на сервере. Если на ВМ высокий Ready, снизьте переподписку по CPU.

Неправильная NUMA-топология на больших ВМ. NUMA-топология, которую видит ВМ (vNUMA), должна соответствовать NUMA-топологии сервера (pNUMA). Про диагностику и возможные варианты решения данной проблемы написано, например, в книге «VMware vSphere 6.5 Host Resources Deep Dive». Если не хотите углубляться и у вас нет лицензионных ограничений по ОС, установленной на ВМ, делайте на ВМ много виртуальных сокетов по одному ядру. Много не потеряете 🙂

На этом про CPU у меня все. Задавайте вопросы. В следующей части расскажу про оперативную память.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *