Тестирование производительности виртуальных дисков - достаточно обширная задача, так как производительность может зависеть не только от количества IOPS на дисковой политике, но и от множество других сопутствующих факторов начиная от CPU заканчивая Сетью. Здесь будут наши рекомендации по ПО с помощью которого можно будет получить наиболее точные результаты производительности.
Для тестирования производительности виртуальных дисков на гостевых операционных системах семейства Windows, мы рекомендуем использовать ПО от Microsoft DiskSpd. Скачать его можно по этой ссылке.
Процесс замера следующий:
C:\DiskSpd\amd64\diskspd.exe –c2G -d30 -r -w40 -t8 -o32 -b64K -Sh -L C:\DiskSpd\diskpsdtmp.dat
Рассмотрим параметры, которые задействованы:
После 30 секунд (в данном случае) выведется результат тестирования, где Вы можете посмотреть результаты. Особенно обращать внимание на IOPS, пропускную способность и задержки.
Более подробную информацию по использованию ПО DispSpd вы можете узнать на оф. сайте Mircrosoft.
Для тестирования производительности виртуальных дисков на гостевых системах семейства Linux, мы рекомендуем использовать ПО fio (Flexible I/O Tester).
Установка ПО выполняется с помощью команд sudo apt-get install fio для Ubuntu/Debian или sudo yum install fio для CentOS/RHEL
Пример команды для тестирования:
fio --filename=/dev/sdb --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=test-job
Рассмотрим параметры, которые задействованы:
filename=/dev/sdb: Тестируемое устройство.
direct=1: Операции ввода-вывода выполняются напрямую, минуя кэш ОС.
rw=randrw: Случайное чтение и запись.
read последовательное чтение.
write последовательная запись.
randread случайное чтение.
randwrite случайная запись.
randrw случайное чтение и запись.
bs=4k: Размер блока ввода-вывода — 4 килобайта.
ioengine=libaio: Используется асинхронный механизм ввода-вывода.
iodepth=256: Очередь ввода-вывода имеет глубину 256 операций.
runtime=120: Тест длится 120 секунд.
numjobs=4: Четыре параллельных задания выполняют тест.
time_based: Тест выполняется строго по времени, а не по объему данных.
group_reporting: Результаты всех заданий объединяются в общий отчет.
После 120 секунд (в данном случае) выведется результат тестирования, где Вы можете посмотреть результаты. Особенно обращайте внимание на IOPS, пропускную способность и задержки.
Синтетический анализ не дает 100% понимание о производительности виртуальных дисков, отклонения в большую или меньшую сторону могут быть. Также мы не рекомендуем программы подобные CrystalDisck Mark т.к данные программы имеют погрешность порядка 15%.
Есть рекомендации по тестированию виртуальных дисков в общем:
Используйте параметры, соответствующие реальной нагрузке на вашу систему (например, размер блока, тип операций).
Если результаты не соответствуют ожиданиям, проверьте конфигурацию ВМ и настройки теста.