Абсолютно несподівано для мене вийшла стабільна версія мультиплатформеного гнератора синтетичного навантаження 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'y необхідно створити тестовий файл, що може займати істотний час і залежить від значення «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КВ
- Percent Read/Write Distribution: 67% read / 33% write
- Percent Random/Sequential Distribution: 100% random
- Align I/O on: завжди повинен бути 4КВ
- Outstanding I/O: 128
Align I/O on завжди повинен бути 4К, як найбільш відповідний у випадку з сучасними ОС і СГД. Так для Windows починаючи з NT 4.0 для NTFS мінімальне значення кластера 4KB, для EXT3/EXT4 на x86 платформі, розмір блоку за замовчуванням, часто, 4KB. Диски SATA працюють з 4KB блоками інформації. Розмір блоку для БД з навантаженням 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, рекомендую користуватися ним.