Я изучал некоторые проблемы с производительностью кластерной виртуальной машины в нашей организации. На самом деле эта проблема, кажется, затрагивает большинство виртуальных машин, на которые я смотрел. И хост, и виртуальная машина - 2008R2 с SP1.
Я считаю - из того, что я читал в различных статьях и советах, которые мне давали, - что задержка ввода-вывода является наиболее важным показателем, на который нужно смотреть. Я рассматривал этот показатель в трех разных местах:
Это делается для того, чтобы сузить источник любой задержки, которая может произойти. Конечно, вот что я нашел ...
Я вижу то, что я считаю приемлемой задержкой (3-15 мс) на LUN, до 20 мс (все еще приемлемой) на хосте Hyper-V. Когда я смотрю на одни и те же показатели на виртуальной машине, я вижу регулярные всплески до 300 мс в течение до 10 секунд за раз и в среднем около 20-30 мс.
Эта конкретная виртуальная машина является SQL-сервером, но то же самое относится и к серверам, отличным от SQL. Соответствующие исключения добавлены в наше антивирусное решение, чтобы избежать проверки файлов БД при доступе. Кроме того, наши виртуальные жесткие диски имеют фиксированный размер, а не динамически расширяются.
Итак, на мой вопрос:
Каковы вероятные причины этой задержки и / или какие другие показатели я могу использовать в виртуальной машине (или даже на хосте), чтобы сузить ее?
Измерение времени в виртуальной машине может быть проблематичным, поскольку виртуальные процессоры не работают непрерывно. Если вы хотите получить четкое представление о том, что на самом деле происходит, используйте Performance Monitor в управляющей ОС. Найдите виртуальное запоминающее устройство Hyper-V. Вы также можете сопоставить это с данными из Resource Monitor, чтобы увидеть, что борется за доступ к дискам.
В общем, время отклика конкретного виртуального жесткого диска будет иметь прямое отношение к тому, что еще происходит на томе, на котором размещен этот виртуальный жесткий диск.
«Задержка диска» на виртуальной машине может быть задержкой ЦП на хосте, поскольку хост должен использовать циклы ЦП для запросов ввода-вывода.
Хост в целом сильно загружен? Или просто работает много виртуальных машин? Не уверен, что эквивалент Hyper-V, но метрика VMWare - это время готовности процессора - в основном, как часто виртуальная машина ожидает запуска на хосте.