Pull to refresh

IOMeter2 v1.1.0

Reading time 6 min
Views 31K
Совершенно неожиданно для меня вышла стабильная версия мультиплатформенного гнератора синтетической нагрузки IOMeter2 v1.1.0. IOMeter часто применяют для тестов дисковой подсистемы, хотя он также может генерировать нагрузку на сеть. Интерфейс совершенно не притерпел изменений. В предыдущей статье я тестировал СХД NetApp FAS подключённый по FC4 к хосту на стабильной версии IOMeter2 2008-06-22-rc2.

При нагрузочном тестировании не забывайте, что нужно оптимально настроить цепочку:
СХД -> Сеть (Ethernet / FC) -> Хост ( Windows / Linux / VMware ESXi ) -> Приложение.
Чтобы получить наилучшие результаты как в синтетически тестах, так и на реальных данных. Одного сервера может оказаться не достаточно чтобы нагрузить СХД.

Из важных нововведений:
  • Поддержка Windows UAC.
  • Пофикшен Windows Disk detection, позволяющий работать с новыми дисками. Диск с таблицей разделов GPT в качестве блочного устройства по-прежнему не поддерживается.
  • Data randomization — появилось три варианта, сильно отличающихся генерируемым патерном случайности.
  • К сожалению не все старые версии конфигов совместимы с новой версией IOMeter2, привожу патерны нагрузки для новой версии чуть ниже.



Для Outstanding I/O максимальное значение может быть 256, тогда как 128 означает высокую нагрузку схожую с высоконагруженными БД.


Устанавливаем максимальный размер тестового файла «Maximum Disk Size» (0 означает все свободное пространство на диске), значение задаётся в секторах, к примеру 20971520 сектора (где один сектор равен 512 Byte, так 20971520 секторов дадут 10 GByte). И задаём патерн нагрузки в поле «Write IO Data Pattern». Стоит отметить, что IOMeter умеет работать с блочным устройством (т.е. без файловой системы) для которого создана таблицей разделов MBR, так и «поверх» файловой системы на диске. В случае запуска теста «поверх» файловой системы, IOMeter'у необходимо создать тестовый файл, что может занимать существенное время и зависит от значения «Maximum Disk Size». При работе с блочным устройством «напрямую», создание тестового файла не требуется, IOMeter немедленно запускает тест.

Патерны нагрузки


Все патерны: сервера БД, Web сервера, VDI и сервера виртуализации, для IOMeter в спойлере ниже. Запустите текстовый редактор и сохраните содержимое спойлера, в файл с расширением icf.

iometer_v110_4k_ALL.icf
Version 1.1.0
'ACCESS SPECIFICATIONS =========================================================
'Access specification name,default assignment
Default,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,67,100,0,1,4096,0
'Access specification name,default assignment
4 KiB; 100% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,100,0,0,1,4096,0
'Access specification name,default assignment
4 KiB; 75% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,75,0,0,1,4096,0
'Access specification name,default assignment
4 KiB; 50% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,50,0,0,1,4096,0
'Access specification name,default assignment
4 KiB; 25% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,25,0,0,1,4096,0
'Access specification name,default assignment
4 KiB; 0% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,0,0,0,1,4096,0
'Access specification name,default assignment
4 KiB aligned; 100% Read; 100% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,100,100,0,1,4096,0
'Access specification name,default assignment
4 KiB aligned; 50% Read; 100% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,50,100,0,1,4096,0
'Access specification name,default assignment
4 KiB aligned; 0% Read; 100% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,0,100,0,1,4096,0
'Access specification name,default assignment
16 KiB; 100% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
16384,100,100,0,0,1,4096,0
'Access specification name,default assignment
16 KiB; 75% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
16384,100,75,0,0,1,4096,0
'Access specification name,default assignment
16 KiB; 50% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
16384,100,50,0,0,1,4096,0
'Access specification name,default assignment
16 KiB; 25% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
16384,100,25,0,0,1,4096,0
'Access specification name,default assignment
16 KiB; 0% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
16384,100,0,0,0,1,4096,0
'Access specification name,default assignment
32 KiB; 100% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
32768,100,100,0,0,1,4096,0
'Access specification name,default assignment
32 KiB; 75% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
32768,100,75,0,0,1,4096,0
'Access specification name,default assignment
32 KiB; 50% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
32768,100,50,0,0,1,4096,0
'Access specification name,default assignment
32 KiB; 25% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
32768,100,25,0,0,1,4096,0
'Access specification name,default assignment
32 KiB; 0% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
32768,100,0,0,0,1,4096,0
'Access specification name,default assignment
64 KiB; 100% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
65536,100,100,0,0,1,4096,0
'Access specification name,default assignment
64 KiB; 50% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
65536,100,50,0,0,1,4096,0
'Access specification name,default assignment
64 KiB; 0% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
65536,100,0,0,0,1,4096,0
'Access specification name,default assignment
256 KiB; 100% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
262144,100,100,0,0,1,4096,0
'Access specification name,default assignment
256 KiB; 50% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
262144,100,50,0,0,1,4096,0
'Access specification name,default assignment
256 KiB; 0% Read; 0% random,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
262144,100,0,0,0,1,4096,0
'Access specification name,default assignment
All in one,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,5,100,0,0,1,4096,0
4096,5,75,0,0,1,4096,0
4096,5,50,0,0,1,4096,0
4096,5,25,0,0,1,4096,0
4096,5,0,0,0,1,4096,0
4096,5,100,100,0,1,4096,0
4096,5,50,100,0,1,4096,0
4096,5,0,100,0,1,4096,0
16384,4,100,0,0,1,4096,0
16384,4,75,0,0,1,4096,0
16384,4,50,0,0,1,4096,0
16384,4,25,0,0,1,4096,0
16384,4,0,0,0,1,4096,0
32768,4,100,0,0,1,4096,0
32768,4,75,0,0,1,4096,0
32768,4,50,0,0,1,4096,0
32768,4,25,0,0,1,4096,0
32768,4,0,0,0,1,4096,0
65536,4,100,0,0,1,4096,0
65536,4,50,0,0,1,4096,0
65536,3,0,0,0,1,4096,0
262144,3,100,0,0,1,4096,0
262144,3,50,0,0,1,4096,0
262144,3,0,0,0,1,4096,0
'Access specification name,default assignment
Database pattern,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
8192,100,67,100,0,1,4096,0
'Access specification name,default assignment
Fileserver pattern (Intel),NONE
'size,% of size,% reads,% random,delay,burst,align,reply
512,10,80,100,0,1,4096,0
1024,5,80,100,0,1,4096,0
2048,5,80,100,0,1,4096,0
4096,60,80,100,0,1,4096,0
8192,2,80,100,0,1,4096,0
16384,4,80,100,0,1,4096,0
32768,4,80,100,0,1,4096,0
65536,10,80,100,0,1,4096,0
'Access specification name,default assignment
Workstation pattern (StorageReview.com),NONE
'size,% of size,% reads,% random,delay,burst,align,reply
8192,100,80,80,0,1,8192,0
'Access specification name,default assignment
Webserver pattern (unknown),NONE
'size,% of size,% reads,% random,delay,burst,align,reply
512,22,100,100,0,1,4096,0
1024,15,100,100,0,1,4096,0
2048,8,100,100,0,1,4096,0
4096,23,100,100,0,1,4096,0
8192,15,100,100,0,1,4096,0
16384,2,100,100,0,1,4096,0
32768,6,100,100,0,1,4096,0
66560,7,100,100,0,1,4096,0
131072,1,100,100,0,1,4096,0
524288,1,100,100,0,1,4096,0
'Access specification name,default assignment
VDI,NONE
'size,% of size,% reads,% random,delay,burst,align,reply
4096,100,20,80,0,1,4096,0
'END access specifications
'MANAGER LIST ==================================================================
'Manager ID, manager name
1,NetApp
'Manager network address

'End manager
'END manager list
Version 1.1.0



Пример настройки патерна синтетической нагрузки для БД

  • Transfer Request Size: 8КB
  • Percent Read/Write Distribution: 67% read / 33% write
  • Percent Random/Sequential Distribution: 100% random
  • Align I/O on: всегда должен быть 4КB
  • Outstanding I/O: 128


Align I/O on всегда должен быть 4К, как наиболее подходящий в случае с современными ОС и СХД. Так для Windows начиная с NT 4.0 для NTFS минимальное значение кластера 4KB, для EXT3/EXT4 на x86 платформе, размер блока по-умолчанию, часто, 4KB. Диски SATA работают с 4KB блоками информации. Размер блока для БД c нагрузкой OLTP, как правило рекомендуется устанавливать в значение от 2KB до 8KB, а для смешанных и DSS нагрузок рекомендуемое значение блока обычно выше (8 KB, 16 KB, or 32 KB). VMware VMFS-5 использует размер блока 1MB и sub-blocks в размере 8KB. Подробнее про настройки IOMeter. VMware VMFS-6 (начиная с vSphere 6.5) использует размер сектора 4К с эмуляцией 512 байт (512е).
Всё вышенаписанное отниситься и к Transfer request size: нет смысла его делать меньше 4КБ.

Другие генераторы нагрузки

sio
fio
Oracle Orion
MS SQLIO Disk Subsystem Benchmark Tool
IOZone
ATTO Disk Benchmark
Intel NASPT — последовательные операции чтения/записи для NAS

IOmeter отстаёт от жизни, он был создан так давно, что иногда не адекватно реагирует на All-flash системах, сейчас большей популярностью пользуется fio, рекомендую пользоваться им.

Сообщения по ошибкам в тексте прошу направлять в ЛС.
Замечания и дополнения напротив прошу в комментарии
Tags:
Hubs:
+2
Comments 6
Comments Comments 6

Articles