- Virtual Infrastructure
- Disaster Recovery
- Кроссплатформенная миграция на базе Киберпротект
- Veeam Agent BaaS
- Veeam Cloud Connect
- Объектное хранилище #CloudMTS
- GPU Workspaces
- VDI Desktops
- Cloud CDN / Медиасервисы
- Диск #CloudMTS
- Техническая поддержка и отзывы
- DBaaS for PostgreSQL
- Containerum Kubernetes
- GPU SuperCloud
Методика тестирования производительности виртуальных дисков
В данной статье будет подробно рассмотрено, каким образом возможно проверить соответствие производительности виртуального диска выбранной политике хранения. Каждая дисковая политика имеет ограничения по IOPS (количество операции ввода-вывода в секунду) на 1 гигабайт объема. Пример: при размещении VM на сайте дата-центра Авантаж возможно использовать политику SSD_Ultra_Policy, в рамках которой доступно 10 IOPS на 1 Гб. В соответствии с указанной политикой для диска объемом 400 Гб на VM, где планируется выполнение тестов, будет задан лимит 4000 IOPS. Подробно соответствие IOPS политикам описано в данной статье.
Помимо озвученных ограничений по IOPS выбранная дисковая политика подразумевает определённый SLA - обеспечение приемлемых показателей производительности при строго обозначенном профиле нагрузки на диск. К этим показателям относятся:
- отдаваемое в гостевую ОС диском VM гарантированное количество IOPS определённого размера
- профиль нагрузки, при котором данное количество IOPS будет обеспечено
- время отклика дисковых операций
Пример: политика SSD_Ultra_Policy гарантирует, что для диска объёмом 400ГБ:
- гостевая ОС получит 4000 IOPS при размере одной операции в 32КБ
- случайный доступ к данным с соотношением по операции чтения и записи 70% / 30%
- время отклика не более 3мс
Синтетические тесты не предназначены для работы на продуктивной системе. Это может вызвать деградацию производительности работающего приложения, а также привести к некорректным результатам. Поэтому перед проведением теста, требуется выполнить остановку всех сервисов и приложений, создающих нагрузку на диск.
Для проверки соответствия производительности диска выбранной политике применяются синтетические генераторы нагрузки, позволяющие строго указать все необходимые параметры теста:
- FIO (Flexible I/O tester) для гостевых ОС Windows и Linux
- DiskSpd для гостевых ОС Windows
Почему такие генераторы как, например, CrystalDiskMark не подходят для проведения тестов?
Данный инструмент является графической надстройкой для упомянутого генератора DiskSpd, которая не позволяет строго описать профиль нагрузки, гарантируемый политикой. Таким образом, любые полученные результаты априори не будут релевантны. Отдельно стоит подчеркнуть, что используемый генератор должен позволять задать потолочное значение IOPS в рамках теста. Это позволит избежать эффекта возрастания времени отклика дисковой подсистемы при попытке "пробить" потолочное значение IOPS, предусмотренное вашей политикой.
Запуск тестов и анализ результатов
Для выполнения тестирования требуется загрузить и установить текущую версию FIO для гостевой ОС:
- Windows: дистрибутивы доступны по ссылке
- Linux: самостоятельно соберите FIO из исходных кодов или установите готовый пакет, используя пакетный менеджер
Пример для RHEL: yum -y install fio
-
сформируйте конфигурационный файл fio3.ini с описанием всех параметров теста
- подробно рассмотрим пример создания файла конфигурации для диска объёмом 400ГБ, управляемого политикой SSD_Ultra_Policy
- необходимо убедиться, что гостевая ОС может гарантировано получить 4000 IOPS размером блока 32КБ при соотношении случайных операций чтения/записи в пропорции 70/30 с задержкой не более 3мс
|
-
получена приемлемая (менее 3мс) средняя задержка для операций:
- при первом запуске FIO сначала сформирует на указанном диске требуемое количество job-файлов заданного объёма, затем произведёт нагрузочное тестирование в течение указанного времени
- повторный запуск теста будет использовать имеющиеся файлы, если их параметры не были изменены в конфигурационном файле
- получите и интерпретируйте результаты теста; пример результатов приведён на скриншоте

Требуемые результаты представлены на изображении:
- достигнуто требуемое потолочное значение в ~4000 IOPS с соотношением чтения/записи в 70/30: r=2800, w=1201
-
получена приемлемая (менее 3мс) средняя задержка для операций:
- read lat (usec) avg=1011,46 что эквивалентно 1мс
- write lat (usec) avg=468,78 что эквивалентно 0,5мс
FIO не использует фиксированную размерность для отображения результатов времени отклика, поэтому рекомендуется правильно пересчитывать размерность результатов в миллисекунды.
Для выполнения тестирования потребуется загрузить и установить текущую версию DiskSPD для гостевой ОС.
Актуальный дистрибутив доступен в разделе Releases.

- запустите тестовый Disk SPD:
- подробно рассмотрим пример запуска теста для диска, объёмом 400ГБ, управляемого политикой SSD_Ultra_Policy
- необходимо убедиться, что гостевая ОС может гарантированно получить 4000 IOPS размером блока 32КБ при соотношении случайных операций чтения/записи в пропорции 70/30 с задержкой не более 3мс
|
- при первом запуске DiskSPD сначала сформирует на указанном диске требуемое количество таргет-файлов заданного объёма, затем произведёт нагрузочное тестирование в течение указанного времени; повторный запуск теста при изменении параметров потребует ручное удаление существующих таргет-файлов
- получите и интерпретируйте результаты теста; пример результатов приведён на скриншоте.

Требуемые результаты представлены на изображении:
-
достигнуто требуемое потолочное значение в ~4000 IOPS с соотношением чтения/записи в 70/30:
- Total IO ~4044 / Read IO ~2833 / Write IO ~1211
-
получена приемлемая суммарная (менее 3мс) средняя задержка для операций:
- AvgLat ~0,356
DiskSPD использует фиксированную размерность для отображения результатов времени отклика - миллисекунды.
Описания и инструкции, размещаемые на данном ресурсе, носят исключительно информационный характер и не могут рассматриваться в качестве гарантий, заверений, рекомендаций или документа, порождающего какие-либо обязательства МТС. Конкретные условия использования сервисов определяются договорами с клиентом. МТС не несет ответственности за содержание публикуемых инструкций и результаты их применения клиентом. Актуальность отдельных положений публикуемых описаний и инструкций необходимо уточнять у аккаунт-менеджера или службы технической поддержки support@cloud.mts.ru