Вимірювання iops дискової підсистеми за допомогою powershell, windows для системних адміністраторів

Однією з основних метрик, що дозволяють оцінити продуктивність існуючої або проектованої системи зберігання даних нікого сервісу є IOPS (Input / Output Operations Per Second) кількість операцій введення / виводу. Говорячи простою мовою, IOPS - цієї кількість блоків, яке встигає вважатися або записатися на носій або файлову систему в одиницю часу. Чим це число більше - тим більше продуктивність даної дискової підсистеми (відверто кажучи, саме по собі значення IOPS варто розглядати в комплексі з іншими характеристиками СГД, таким як середня затримка, пропускна здатність і т.п.).

Досить грубо оцінити рівень продуктивності дискової підсистеми можна за допомогою лічильників продуктивності з Performance Monitor (лічильники Disk Reads / sec, Disk Writes / sec, Current Disk Queue Length).

Мені знадобилося мати під рукою більш наочний і зручний інструмент на PowerShell, що дозволяє швидко виміряти поточну продуктивність в IOPS використовуваної системи зберігання даних, будь то локальний жорсткий, твердотільний (SSD) диск, мережева папка (SMB), CSV тому або LUN-а на мережевому сховище даних (SAN).

Отже, скачайте архів містить 2 файли: SQLIO.exe і DiskPerformance.ps1 (disk-perf-iops.ZIP - 73Кб) і розпакуйте архів в довільний каталог.

Вимірювання iops дискової підсистеми за допомогою powershell, windows для системних адміністраторів

Приклад запуску скрипта визначення IOPS:

\ DiskPerformance.ps1 -TestFileName test.dat -TestFileSizeInGB 1 -TestFilepath C: \ temp -TestMode Get-LargeIO -FastMode True -RemoveTestFile True -OutputFormat Out-GridView

Подивимося на аргументи скрипта:

Файл, створюваного утилітою FSUTIL

Розмір файлу для тестів. Допустимі варіанти 1,5,10,50,100,500,1000 Гб. Розмір файлу повинен бути більше, ніж розмір кешу системи. Інакше буде вимірюватися IOPS для даних в кеші, а не на диску.

Тут вказується диск, для якого буде виконуватися розрахунок продуктивності і каталог на диску, в якому буде створюватися тестовий файл. Припустимо вказати UNC шлях до мережевої папці.

Є два варіанти вимірювання навантаження, Get-SmallIO - вимірюються IOPS, Get-LargeIO - вимірюється швидкість передачі даних. Різниця між аргументами SmallIO і LargeIO, в розмірах блоків при вимірі швидкості 8 Кбайт і 512 Кбайт, і типі доступу Random або Sequential відповідно.

У режимі Fastmode кожен тест виконується 10 секунд, інакше 60 сек.

Видалити тестовий файл після закінчення

Можливе виведення результатів вимірювання в консоль PowerShell (Format-Table) або в окреме вікно графічної таблиці (Out-Gridview)

Вимірювання iops дискової підсистеми за допомогою powershell, windows для системних адміністраторів

У нашому випадку дисковий масив (тестувалося віртуальний vmdk диск на VMFS сховище, розташованому на дискової полиці HP MSA 2040 з доступом через SAN) показав середнє значення IOPS близько 15000 і швидкості передачі даних (пропускна здатність) близько 5 Гбіт / сек.

У наступній таблиці вказані зразкові значення IOPS для різних типів дисків:

Вдалося знайти ряд рекомендацій по продуктивності в IOPS для поширених сервісів:

PowerShell: Get-ADUser - командлет для отримання інформації про користувачів Active Directory

Отримуємо інформацію поточному часовому поясі і наявності KB2998527 на комп'ютерах домену

PowerShell: Get-ADComputer - отримання даних про комп'ютери в Active Directory

Аудит паролів користувачів в Active Directory

Як створити ZIP архів за допомогою PowerShell

Resolution: 1346 x 733 55 queries. 0,440 sec 23.46 MB

MAXCACHE: 0.4MB / 0.00056 sec

Схожі статті