Назад | Перейти на главную страницу

Врет ли SQLIO при запуске из гостевой системы Hyper-V на VHD?

SQLIO кажется полезным инструментом. Я подумал, что было бы интересно попробовать измерить разницу в скорости между физическим диском и VHD. Итак, я запустил SQLIO на хосте Hyper-V на физическом диске. Результаты казались разумными. Затем я запустил его в гостевой системе, чтобы протестировать vhd (на том же физическом диске). Я ожидал, что это будет немного медленнее. Но вместо этого это было намного быстрее - средняя задержка 0 мс.

Итак, я пытаюсь здесь чему-то научиться. Похоже, что Hyper-v каким-то образом обманывает SQLIO, но я недостаточно хорошо его понимаю, чтобы понять это.

Это динамический vhd, без снимков или чего-то еще, и vhd - единственный файл на диске. Физический диск представляет собой два диска SAS RAID 1.

Я знаю, что опаздываю на вечеринку, но обнаружил, что использование SQLIO на динамических дисках дает ложные результаты. Причина в том, что tesfile.dat - это просто обнуленный файл, поэтому динамический диск достаточно умен, чтобы сжать этот файл за кулисами, что, в свою очередь, означает, что он поместится в кеш вашего диска. Итак, ваш тест SQLIO, по сути, просто проверяет, насколько быстр ваш кеш.

Я уверен, что это хорошо решено, но у меня были проблемы с поиском ответа, когда я тестировал, поэтому я подумал, что может быть полезно записать его для дальнейшего использования :)

Стивен

Да, Hyper-V «обманывает» sqlio с помощью группировки транзакций. Виртуальная машина SQL сервера Hyper-V не должна хранить базу данных или журналы на виртуальном жестком диске. Вы должны использовать какой-либо промежуточный диск (включая iSCSI).

Microsoft имеет список рекомендаций для SQL на Hyper-V и некоторые подробности о настройке сквозных дисков.

Более точно, время в виртуальной машине течет с переменной скоростью. В физической машине есть кристалл и часы, производящие точные циклы с постоянной скоростью. Операционная система использует это для определения времени. Но на виртуальной машине часы могут замедляться и ускоряться. Гипервизор решает, насколько быстро или медленно бьют виртуальные часы, в зависимости от нагрузки.

Тестовый файл какого размера вы используете? Увеличив размер тестового файла (возможно, до нескольких гигабайт), вы сможете минимизировать эффект кеширования.