Jednou z hlavných metrík na vyhodnotenie výkonnosti existujúceho alebo plánovaného úložného systému je IOPS (vstupVýstup operácie za druhý - počet operácií vstup / výstup). Jednoducho povedané, IOPS je počet blokov, ktoré je možné čítať alebo zapisovať na médium alebo do súborového systému za jednotku času. Čím vyššie je toto číslo, tým vyšší je výkon tohto diskového subsystému (úprimne povedané, samotná hodnota IOPS by sa mala posudzovať v spojení s inými charakteristikami úložných systémov, ako je priemerná latencia, priepustnosť atď.).
V tomto článku sa pozrieme na niekoľko spôsobov, ako merať výkon úložného systému používaného v IOPS v systéme Windows (lokálny pevný disk, SSD, sieťový priečinok SMB, zväzok CSV alebo LUN pri ukladaní v SAN)..
obsah:
- Čítače výkonnosti diskových subsystémov Windows
- Testovanie IOPS na Windows pomocou DiskSpd
- Ako získať výkonnosť IOPS a diskových subsystémov pomocou PowerShell?
Čítače výkonnosti diskových subsystémov Windows
Aktuálne hodnoty zaťaženia v diskovom subsystéme môžete vyhodnotiť pomocou vstavaných čítačov výkonu systému Windows od výkon monitor. Zber údajov o týchto počítadlách:
- štart
Perfmon
; - Vytvorte novú skupinu zberačov údajov (Sada zberačov údajov). vybrať Vytvoriť ručne;
- Vyberte možnosť Vytvorte denníky údajov -> Počítadlo výkonnosti;
- Teraz do vlastností novej sady zhromažďovania údajov pridajte nasledujúce čítače výkonu pre objekt Fyzický disk (môžete vybrať počítadlá pre konkrétnu jednotku alebo pre všetky dostupné miestne jednotky):
- Avg. Disk Sec./Transfer
- Avg. Dĺžka frontu disku
- Priemerný bajt disku / prenos
- Diskové bajty / s
- Prenosy diskov / s
- Split IO / sec
- Môžete zmeniť ďalšie možnosti zhromažďovania údajov. V predvolenom nastavení sa hodnoty počítadla zhromažďujú každých 15 sekúnd. Ak chcete zobraziť údaje o výkone disku v reálnom čase, pridajte určený počítadlo do Perfmon v časti Nástroje na monitorovanie -> Monitor výkonu..
- Zostáva začať zhromažďovať údaje počítadla výkonnosti (štart) a počkajte na zhromaždenie dostatočných informácií na analýzu. Potom kliknite na RMB na súprave u vyberte Stop;
- Ak chcete zobraziť zhromaždené údaje o disku, prejdite na Perfmon -> Reports -> User Defined -> Data_Disk_IO -> váš set. Diskové dáta sa štandardne zobrazujú ako grafy;
- s
Ctrl + G
prepnúť do režimu správa.
Ako interpretovať výsledky výkonu disku v systéme Perfmon? Na rýchlu analýzu výkonu diskového subsystému je potrebné sa pozrieť na hodnoty najmenej nasledujúcich 5 počítadiel.
Pri analýze údajov počítadla je žiaduce mať predstavu o konfigurácii fyzických diskov (či sa používa RAID / Stripe / počet a typ diskov, dostupnosť vyrovnávacej pamäte, atď.).- disk sekunda/ Transfer - čas potrebný na vykonanie jednej operácie zápisu / čítania na pamäťovom zariadení / disku - latencii disku. Ak je oneskorenie viac ako 25 ms (0,25) alebo vyššie, diskové pole nemá čas na vykonanie operácií. Pre vysoko zaťažené systémy by hodnota nemala presiahnuť 10 ms (0,1);
- Prenosy diskov / s - Počet operácií čítania a zápisu za sekundu (IOPS). Toto je hlavný ukazovateľ intenzity prístupu na disky (približné hodnoty v IOPS pre rôzne typy diskov sú uvedené na konci článku);
- disk bajtov/ Sek - priemerná výmena disku (čítanie / zápis) za sekundu. Maximálne hodnoty závisia od typu disku (150 - 250 MB / s - pre bežný disk a 500 - 10000 pre SSD);
- rozdeliť IO/ sek - indikátor fragmentácie disku, keď operačný systém musí rozdeliť jednu I / O operáciu na niekoľko operácií. Môže tiež naznačovať, že aplikácia požaduje príliš veľké bloky údajov, ktoré nemožno preniesť v jednej operácii;
- avg. disk fronta dĺžka- dĺžka frontu na disk (počet transakcií čakajúcich na spracovanie). V prípade jedného disku nesmie dĺžka frontu prekročiť 2. Pre pole RAID so 4 diskami sa za platnú hodnotu považuje dĺžka fronty až 8..
Testovanie IOPS na Windows pomocou DiskSpd
Spoločnosť Microsoft odporúča použiť tento nástroj na vygenerovanie záťaže na subsystéme disku a na meranie jeho výkonu. DiskSpd (Https://aka.ms/diskspd). Toto je obslužný program konzoly, ktorý môže vykonávať vstupno-výstupné operácie so zadaným cieľom vo viacerých vláknach. Tento nástroj často používam na meranie výkonu úložiska v IOPS a na získanie maximálnej rýchlosti čítania a zápisu z tohto servera (môžete samozrejme merať aj výkon zo strany úložiska, v tomto prípade sa na vygenerovanie zaťaženia použije diskspd).
Tento nástroj nevyžaduje inštaláciu, stačí stiahnuť a rozbaliť archív na lokálny disk. Pre x64 bitové systémy použite verziu diskspd.exe z adresára amd64fre.
Na testovanie disku používam nasledujúci príkaz:
diskspd.exe -c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L E: \ diskpsdtmp.dat> DiskSpeedResults.txt
-c50G
- veľkosť súboru 50 GB (je lepšie použiť veľkú veľkosť súboru, aby sa nezmestila do vyrovnávacej pamäte radiča úložiska);-D30
0 - trvanie testu v sekundách;-r
- náhodné čítanie / zápis (ak potrebujete otestovať postupný prístup, použite -s);-t8
- počet vlákien;-W40
- pomer operácií zápisu a čítania 40% / 60%;-ø32
- dĺžka fronty;-b64K
- veľkosť bloku;-sh
- Nepoužívajte ukladanie do vyrovnávacej pamäte-L
- zmerať latenciu;E: \ diskpsdtmp.dat
- cesta k testovaciemu súboru.
Po dokončení záťažového testu je možné získať priemerné hodnoty výkonu z získaných tabuliek..
Napríklad v mojom teste boli získané nasledujúce všeobecné údaje o výkonnosti (Total IO):
- MiB / s - 241 (približne 252 Mb / s, nie je zlé)
- IOPS - 3866,49 (vynikajúce!)
- Priemerné oneskorenie - 66,206 ms (trochu vysoké!)
Jednotlivé hodnoty môžete získať iba pre operácie čítania (časť read IO ) alebo záznamy (oddiel write IO ).
Po otestovaní niekoľkých diskov alebo LUN na úložisku pomocou diskspd ich môžete porovnať alebo vybrať pole s požadovaným výkonom pre vaše úlohy..
Ako získať výkonnosť IOPS a diskových subsystémov pomocou PowerShell?
Nedávno som narazil na skript PowerShell (autor programu Microsoft MVP, Mikael Nystrom), ktorý je v podstate doplnkom nástroja SQLite.exe (sada testov na výpočet výkonnosti ukladania súborov).
poznámka. V decembri 2015 spoločnosť Microsoft oznámila ukončenie podpory obslužného programu a nahradenie nástroja SQLIO univerzálnejším nástrojom - Diskspd, odstránením distribučných súborov SQLIO z vášho webu. Preto budete musieť vyhľadávať sqlio.exe sami alebo si ich stiahnuť z našej webovej stránky (umiestnenej v archíve so skriptom).
Stiahnite si archív obsahujúci 2 súbory: SQLite.exe a DiskPerformance.ps1 (disk-perf-iops.ZIP - 73 kB) a rozbaľte archív do ľubovoľného adresára.
Príklad spustenia skriptu PowerShell na určenie IOPS:
.\ DiskPerformance.ps1 -TestFileName test.dat -TestFileSizeInGB 1 -TestFilepath C: \ temp -TestMode Get-LargeIO -FastMode True -RemoveTestFile True -OutputFormat Out-GridView
V skripte som použil nasledujúce argumenty:
- -TestFileName test.dát - názov súboru vytvoreného obslužným programom FSUTIL;
- -TestFileSizeInGB 1 - rveľkosť súboru pre testy. Platné možnosti sú 1,5, 10, 50, 100, 100, 100, 000 GB. Veľkosť súboru musí byť väčšia ako veľkosť systémovej vyrovnávacej pamäte. V opačnom prípade sa bude IOPS merať pre údaje v pamäti cache, nie na disku;
- -TestFilepath C: \ Temp - označuje jednotku, pre ktorú sa vykoná výpočet výkonu, a adresár na jednotke, v ktorej sa vytvorí testovací súbor. Je možné určiť cestu UNC k sieťovému priečinku;
- -TestMode dostať-LargeIO - eExistujú dve možnosti merania zaťaženia., dostať-SmallIO - merané pomocou IOPS, dostať-LargeIO - nameraná rýchlosť prenosu dát. Rozdiel medzi argumentmi SmallIO a LargeIO vo veľkostiach blokov pri meraní rýchlosti 8 Kb a 512 Kb, a typu prístupu v náhodnom poradí alebo v poradí;
- -FastMode pravdivý - v režime Fastmode každý test trvá 10 sekúnd, inak 60 sekúnd;
- -RemoveTestFile pravdivý - odstrániť testovací súbor na konci testu;
- -OutputFormat von-GridView - je možný výstup výsledkov merania do konzoly PowerShell (formát-stôl) alebo v samostatnom okne grafickej tabuľky (von-GridView);
V našom prípade diskové pole (virtuálny disk vmdk bol testovaný na úložisku VMFS umiestnenom na diskovej polici HP MSA 2040 s prístupom cez SAN) vykazoval priemerný IOPS približne 15000 a rýchlosti prenosu dát (šírka pásma) asi 5 Gb / s.
V nasledujúcej tabuľke sú uvedené približné hodnoty IOPS pre rôzne typy pohonov:
typ | IOPS |
SSD (SLC) | 6000 |
SSD (MLC) | 1000 |
15 000 ot./min | 175-200 |
10 000 ot./min | 125-150 |
7,2 K RPM | 50-75 |
RAID5 zo 6 jednotiek s 10 000 ot / min | 900 |
Nasleduje niekoľko odporúčaní týkajúcich sa výkonu disku v IOPS pre bežné služby:
- Microsoft výmena 2010 - s 5 000 používateľmi, z ktorých každý dostáva 75 a odosiela 30 listov denne, bude vyžadovať najmenej 3 750 IOPS
- Microsoft SQL 2008 server - s 3500 transakciami SQL za sekundu (TPS) - 28 000 IOPS
- Normálny aplikačný server Windows pre 10 - 100 používateľov - 10 - 40 IOPS