Зачастую бывает необходимо понять причины, по которым та или иная виртуальная машина на сервере VMware ESX испытывает проблемы производительности (тормозит). Можно воспользоваться встроенными графиками производительности VMware vCenter (вкладка Performance), однако этого может оказаться недостаточно. В консольной ОС VMware ESX (Service Console) есть утилита esxtop, которая позволяет отслеживать все аспекты производительности сервера виртуализации, а для VMware ESXi доступна утилита resxtop, которую можно запустить с помощью VMware vSphere Management Assistant.
Известный блоггер, Duncan Epping, недавно опубликовал у себя таблицу различных параметров команды esxtop, смотря на значения которых можно идентифицировать проблему производительности на сервере VMware ESX. В таблице ниже приведены наименования счетчиков, величины пороговых значений, которые они обычно не должны превышать, и объяснения возможных причин проблем производительности и тормозов сервера ESX и виртуальных машин.
Чтобы вызвать утилиту esxtop, необходимо набрать в консоли VMware ESX команду:
esxtop
Далее можно переключаться на различные аспекты просмотра счетчиков, нажимая кнопки на клавиатуре:
m - информация об использовании памяти
n - параметры сетевого взаимодействия (здесь о просмотре балансировки нагрузки на интерфейсы)
d - информация о дисковой подсистеме (кроме того, можно использовать утилиту vscsiStats)
Вид esxtop
Счетчик (метрика)
Пороговое значение
Причины и особенности превышения порога
CPU (основной вид, кнопка c)
%RDY
10
Главный счетчик производительности процессора. Означает, что виртуальная машина (гостевая ОС) готова исполнять команды на процессоре (ready-to-run), но ожидает в очереди, пока процессор(ы) сервера ESX занят(ы) другой задачей (ВМ). Является суммой значений %RDY для всех отдельных виртуальных процессоров ВМ (vCPU).
По сути, есть две причины, по которым данный счетчик может зашкаливать приведенное пороговое значение:
- сильная нагрузка на физические процессоры из-за большого количества виртуальных машин и нагрузок в них (здесь просто надо уменьшать нагрузку)
- большое количество vCPU у конкретной машины. Ведь виртуальные процессоры машин на VMware ESX работают так: если у виртуальной машины 4 vCPU, а на хосте всего 2 физических pCPU, то одна распараллеленная операция (средствами ОС) будет исполняться за в два раза дольший срок. Естественно, 4 и более vCPU для виртуальной машины может привести к существенным задержкам в гостевой ОС и высокому значению CPU ready. Кроме того, когда нужен co-sheduling нескольких виртуальных vCPU, должны быть свободны столько же pCPU, это, соответственно, тоже вызывает задержки (с каждым vCPU ассоциирован pCPU).
Чрезмерное использование vSMP (виртуальных CPU для ВМ). Уменьшите число vCPU для данной ВМ, но это приведет к большему количеству отложенных команд.
CPU (основной вид, кнопка c)
%MLMTD
0
Если значение больше 0, то виртуальная машина, скорее всего, упирается в CPU Limit, выставленный в настройках виртуальной машины или пула ресурсов.
CPU (основной вид, кнопка c)
%SWPWT
1
Виртуальная машина ждет, пока засвопированные таблицы будут прочитаны с диска. Возможная причина - memory overcommitment.
MEM (кнопка m)
MCTLSZ (I)
1
сли значение больше 0, то хост ESX начал вызывать в гостевой ОС виртуальной машины balloon driver, который передает неиспользуемую память виртуальной машины другим ВМ с большой загрузкой памяти (техника memory overcommitment). Возможно, нужно поэкспериментировать с расширенной хоста ESX настройкой Mem.CtlMaxPercent, которая отвечает за максимально возможный относительный объем изымаемой у гостевой ОС памяти.
MEM (кнопка m)
SWCUR (J)
1
Если значение больше 0, то хост ESX складывал страницы памяти в файл подкачки (swap) в прошлом. Причина - memory overcommitment.
MEM (кнопка m)
SWR/s (J)
1
Если значение больше 0, то виртуальные машины активно ведут чтение из файлов подкачки (vswp). Причина - нехватка памяти вследствие чрезмерного memory overcommitment.
MEM (кнопка m)
SWW/s (J)
1
Если значение больше 0, то виртуальные машины активно ведут запись в файлы подкачки (vswp). Причина - нехватка памяти вследствие чрезмерного memory overcommitment.
NETWORK (кнопка n)
%DRPTX
1
Число "дропнутых" пакетов на передачу. Возникает, скорее всего, из-за очень высокого использования сетевых интерфейсов виртуальными машинами. Необходимо увеличение пропускной способности сети.
NETWORK (кнопка n)
%DRPRX
1
Число "дропнутых" пакетов на прием. Возникает, скорее всего, из-за очень высокого использования сетевых интерфейсов виртуальными машинами. Необходимо увеличение пропускной способности сети.
DISK (кнопка d)
GAVG (H)
25
Это сумма счетчиков "DAVG" и "KAVG".
DISK (кнопка d)
DAVG (H)
25
Задержки диска, вызванные, скорее всего, со стороны массива.
Отмена команды SCSI, вызванная гостевой ОС виртуальной машины, вследствие того, что система хранения не отвечае. Для гостевых ОС Windows это случается по умолчанию через 60 секунд. Может случиться, например, при отказе пути в SAN.
DISK (кнопка d)
RESETS/s (K)
1
Число сброса SCSI-команд (commands reset) в секунду.