• Мониторинг производительности виртуальных машин на ESX / ESXi 4

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

    Вот раздается звонок:
    “АААА. Все плохо, ваша виртуализация отстой, моя виртуальная машина тормозит“.
    Наши действия?
    Посмотреть на цифирки счетчиков производительности, и найти источник тормозов.
    Логичным образом встают три вопроса:
    1) Где искать цифирки?
    2) Какие именно счетчики нас интересуют?
    3) Какие значения являются плохими?

    1) Где искать цифирки

    Очевидно, что смотреть можно на закладке Performance в клиенте vSphere. Обратите внимание – эта закладка доступна для многих объектов, не только для хостов и виртуальных машин. Это если у нас есть vCenter. Но и без него что-то мы увидим.
    Пример:

    но часто более удобным и полным средством является консольная утилита esxtop. Кто использует ESX, логиньтесь по ssh и запускайте. Кто использует ESXi, вам придется скачать vMA или vSphere CLI под Linux, и оттуда запустить resxtop. Впрочем, последний вариант универсален – работает и с ESX и с ESXi.

    Нажимая всякие кнопки, вы можете переключаться на разную информацию:
    c = cpu
    m = memory
    n = network
    i = interrupts
    d = disk adapter
    u = disk device
    v = disk VM
    Нажав Shift+V вы оставите на экране только виртуальные машины, убрав прочие процессы гипервизора.
    Нажав f, вы увидите экран выбора столбцов – далеко не вся информация отображается по умолчанию.

    Для дисковой подсистемы существует дополнительное средство мониторинга vscsiStats.

    2) Какие именно счетчики нас интересуют?

    Самые основные перечислю отдельно.
    Процессор: CPU Ready. Высокие значения говорят о том, что гипервизор не выделяет для ВМ достаточно процессорного времени.
    Память: Balloon (vmmemctl) и VMkernel Swap. Если эти счетчики стабильно высокие, значит гипервизор вытесняет гостя в файл подкачки.
    Диск: Disk Queue и Latency.

    Полезные ссылки на описания всех доступных счетчиков.
    для работы через vSphere Client:
    Выбираем объект, закладка Performance, кнопка Advanced и выбираем период и счетчики. Их описание доступно тут – vCenter Performance Counters. Для полноты картины – Understanding VirtualCenter Performance Statistics.

    Для работы с esxtop:
    описание счетчиков – Interpreting esxtop Statistics.

    Для vscsi Stats – Using vscsiStats for Storage Performance Analysis. Вспомогательное – vscsiStats и vscsiStats output in esxtop format.

    3) Какие значения являются плохими?

    Пороговые значения, на которые можно ориентироваться – esxtop values/thresholds. Популярнейший блоггер и инженер VMware Duncan Epping составил таблицу пороговых значений, основываясь на собственном опыте, опыте коммьюнити и документации.
    Я прикладываю скопипастенную оттуда табличку:

    4) Дополнение

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

    Первое, что следует сделать – выгрзуить данные esxtop в файл .csv.
    Сделать это можно командой типа
    esxtop -a -b -d 10 -n 60 > /tmp/esxtopout.csv.
    a – выгрузка всех параметров;
    b – пакетный режим;
    d – размер задержки между снятием данных в секундах;
    n – количество итераций. В моем примере данные снимаются за 600 секунд.
    Получив файл с данными, его следует проанализировать.

    Первое, что можно для этого использовать – perfmon, загрузив в него файл с данными и выбрав необходимый счетчик/счетчики.

    Второе – утилита авторства одного из инженеров VMware, под название esxplot. Скачать можно отсюда – http://www.durganetworks.com/esxplot/.
    С помощью этой утилиты возможно построение наглядных графиков прямо из csv c данным от esxtop.

    (у меня эта утилита завелась под специально установленной WinXP SP2 Eng, после установки Microsoft Visual C++ 2008 Redistributable Package (x86)). Esxplot мне понравился больше perfmon для визуализации данных.

    http://communities.vmware.com/docs/DOC-5600