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

Процессы
21.01.2016
151
10 min

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

#производительность #vsphere

Оптимизация производительности в 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

-01

A

и

PERF

-

WORKER

-01

B

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

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

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

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

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

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

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


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

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

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

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





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


Сравнение показателей 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.



Екатерина Юдина
Профильный эксперт