Оптимизация производительности в vSphere: решение основных проблем с CPU

Оптимизация производительности в vSphere: решение основных проблем с CPU

Как быстро идентифицировать проблему, связанную с производительностью процессора, какие метрики в этом случае будут наиболее информативными? На эти и многие другие вопросы, имеющие отношение к производительности CPU в виртуальном окружении vSphere, ответим в этой статье.

Интенсивность потребления процессорных ресурсов зависит от множества факторов и различных условий. Именно поэтому вопрос контроля ресурсоемкости и загруженности CPU должен быть максимально проработанным. Допустим, в окружении vSphere используется слишком большое количество виртуальных машин с запущенными на них высоконагруженными приложениями, все это может привести к недостаточности процессорных ресурсов. Иногда причиной подобной нехватки становится и другой момент, связанный, к примеру, с неэффективным использованием или неоптимальной конфигурацией виртуальных машин. В любом случае нехватка ресурсов CPU может привести к серьёзным проблемам с производительностью и сказаться на работе жизненно важных для бизнеса сервисов.

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

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

# High Co-stoptime – показатель Co-stoptime указывает на наличие большего количества vCPU, чем в действительности необходимо. А это зачастую вызывает дополнительное расходование ресурсов, уменьшая производительность виртуальной машины. В подобной ситуации при снижении количества vCPU виртуалка сможет работать значительно лучше.

# CPU Limits указывает на установленные процессорные лимиты, запрещающие виртуальной машине использовать больше пороговых значений. Такое ограничение, в случае если виртуальной машине потребуется большее количество ресурсов, может стать причиной проблем с производительностью.

# Host CPU Saturation используется для проверки загрузки процессора хоста, и если средняя загрузка составляет более 75 % или пиковая – более 90 %, значит, наблюдается нехватка ресурсов CPU узла vSphere, что чревато проблемами запуска имеющихся виртуальных машин.

# Guest CPU Saturationуказывает на загрузку процессора виртуальной машины. Если приложение виртуальной машины использует 90 % и более ресурсов CPU, наблюдается проблема с производительностью. В этом случае приложение становится «узким горлышком». Добавление дополнительного vCPU значительно улучшит производительность виртуальной машины.

# Low Guest Usage – может указывать на некорректную конфигурацию приложения или недостаточность других ресурсов (будь то оперативная память или жесткий диск) и, следовательно, выделенные ресурсы vCPU не смогут использоваться в полной мере.

Скрипт как средство имитации загрузки CPU: изучаем особенности

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

 Окно командной строки

Рисунок 1. Окно командной строки

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

Запуск удаленных рабочих столов виртуальных машин

Рисунок 2. Запуск удаленных рабочих столов виртуальных машин

Скрипт имитирует ресурсоемкий процесс загрузки CPU виртуальных машин: PERF-WORKER-01Aи PERF-WORKER-01B, а графический интерфейс отображает значения производительности в режиме реального времени. Как видите, отметка производительности близка к значению 15 000.

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

Обзор расширенных параметров в vSphere

Рисунок 3. Обзор расширенных параметров в vSphere

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

Выбор соответствующих счетчиков производительности

Рисунок 4. Выбор соответствующих счетчиков производительности

При расследовании проблем производительности CPU стоит обратить внимание на следующие счетчики:

  • Demand – количество CPU виртуальной машины, необходимых (требуемых) для использования.
  • Ready – показатель времени, в течение которого виртуальная машина готова запуститься, но не может в силу недостаточности физически ресурсов.
  • Usage – количество CPU виртуальной машины, фактически разрешенных для использования в текущий момент.

Для выбора Demand, Ready, Usage и других счетчиков необходимо перейти в раздел метрик CPU и указать необходимые элементы, после чего нажать кнопку ОК.

Показатели CPU State

Рисунок 5. Показатели CPU State

Виртуальные машины могут находиться в одном из представленных ниже состояний, которые отслеживаем с помощью соответствующих счетчиков:

  • Wait (VMWAIT) – такое состояние фиксируется, когда гостевая ОС виртуальной машины находится в состоянии простоя или ожидается выполнение задач на уровне vSphere. К примеру, vCPU может перейти в режим Wait в случае, если ожидается завершение операций ввода-вывода или выполнение «свопирования» на уровне ESX. Иными словами, такой счетчик отображает процент времени, который виртуальная машина потратила на ожидание, пока ядро ESX выполняло какие-либо операции.
  • Ready (RDY) – главная составляющая производительности процессора. Процессор может находиться в состоянии RDY, когда виртуальная машина готова к запуску, но в силу недостаточности физических ресурсов хоста запуститься не может. Одной из причин может быть установленный на CPU лимит (выше мы говорили об этом), или лимит ресурсного пула.
  • Co-Stop (CSTP): этот статус соотносится со временем, когда виртуальная машина готова исполнять команды, но вынуждена ждать высвобождения других vCPU для возможности их одновременного использования.
  • Run (исполнение): показывает, что виртуальная машина «исполняется» в системе.

Исходя из рассмотренных статусов и счетчиков, нелишним будет ознакомиться с одной важной формулой. Она верна для отдельно взятой VM, которая либо простаивает и находится в ожидании (%WAIT), либо готова исполнять команды, но CPU занят (%RDY), либо ожидает высвобождения нескольких процессоров (%CSTP), либо исполняется в системе (%RUN).

%WAIT + %RDY + %CSTP + %RUN = 100%

Сравнение показателей Demand и Usage

Сравнение показателей счетчиков производительности

Рисунок 6. Сравнение показателей счетчиков производительности

Обратите внимание на то, сколько ресурсов CPU требуется для работы виртуальной машины и сколько в действительности используется. Как видно на рисунке, требуется (demand) значительно больше, чем используется (use). Также обратите внимание на показатель Ready Time, равный 9977 ms. Как вы помните, если это значение будет больше 10 %, вероятна проблема с производительностью. Для перевода значения из миллисекунд в проценты можно воспользоваться следующей формулой:

 можно воспользоваться следующей формулой

Заметка: поскольку некоторые показатели в отчетах vCenter отображаются в миллисекундах, приведенную формулу можно использовать для перевода значений в проценты.

Статистика CPU на уровне хоста

Для просмотра статистики на уровне хоста выбирается необходимый узел и используется закладка Monitor-Performance, как показано на рисунке. После выбора опции Advanced станет доступной возможность просмотра счетчиков производительности.

Обзор статистики на уровне хоста

Рисунок 7. Обзор статистики на уровне хоста

Здесь можно отслеживать статистику по CPU на уровне хоста ESX.

Обзор счетчиков производительности

Рисунок 8. Обзор счетчиков производительности

Согласно рисунку, только один из процессоров хоста претерпевает значительную нагрузку, тогда как остальные практически не задействованы.

Редактирование параметров виртуальной машины

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

Редактирование параметров виртуальной машины

Рисунок 9. Редактирование параметров виртуальной машины

Выполним проверку параметров CPU affinity на машине PERF-WORKER-01A.

Редактирование параметров CPU

Рисунок 10. Редактирование параметров CPU

Как видно на рисунке, значение affinity равно единице. Чтобы правильно сбалансировать виртуальные машины на использование физических процессоров в системе, необходимо очистить установленное значение «1» и нажать ОК. Аналогичное действие выполняем и на второй виртуальной машине (PERF-WORKER-01B).

 Редактирование параметров CPU

Рисунок 11. Редактирование параметров CPU

Заметка: в большинстве случаев VMware не рекомендует использовать установленные вручную значения affinity. vSphere способна выполнять оптимальную балансировку VM в контексте физических процессорных ресурсов. Кроме того, использование значений «affinity», выставленных вручную, не даст использовать vMotion, а также может вызвать сложности в управлении и проблемы с производительностью.

Подводим итоги

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

Следите за новыми материалами нашего блога. В следующей статье мы продолжим рассказывать про оптимизацию производительности CPU в vSphere.

Опубликовано 21.01.2016 10:01:27 автором E.Yudina в разделе Производительность

/* */

Посетите наш сайт!

IaaS облако IT-GRAD

Подпишитесь на блог!

IaaS для бизнеса по кирпичикам