A merevlemez-meghajtók teljesítményének és IOPS-ének, valamint a tárolásnak a mérése Windows rendszerben

A meglévő vagy tervezett tárolórendszer teljesítményének értékeléséhez az egyik fő mérőszám a IOPS (bemenet/ Kimenet művelet per második - bemeneti / kimeneti műveletek száma). Egyszerűen fogalmazva: az IOPS az egységenkénti adathordozóra vagy a fájlrendszerre olvasható vagy írható blokkok száma. Minél nagyobb ez a szám, annál jobb ennek a lemezes alrendszernek a teljesítménye (őszintén szólva, magát az IOPS-értéket figyelembe kell venni a tárolórendszerek más jellemzőivel, például az átlagos késéssel, átviteli sebességgel stb. Együtt).

Ebben a cikkben az IOPS-ban Windows alatt használt tárolórendszer teljesítményének mérésére számos módszert (helyi merevlemez, SSD meghajtó, SMB hálózati mappa, CSV kötet vagy LUN tárolva a SAN-ban).

Tartalom:

  • Windows lemez alrendszer teljesítményszámlálói
  • IOPS tesztelése Windows rendszeren a DiskSpd segítségével
  • Hogyan érhető el az IOPS és a lemezes alrendszer teljesítménye a PowerShell használatával?

Windows lemez alrendszer teljesítményszámlálói

A lemezes alrendszer jelenlegi terhelését a beépített Windows teljesítményszámlálók segítségével értékelheti teljesítmény monitor. Adatok gyűjtése ezekről a számlálókról:

  1. kezdet PerfMon;
  2. Hozzon létre új adatgyűjtő-készletet (Adatgyűjtő készlet). választ Hozzon létre manuálisan;
  3. Válasszon egy lehetőséget Készítsen adatnaplókat -> Teljesítményszámláló;
  4. Most az új adatgyűjtő készlet tulajdonságaihoz adja hozzá az objektum következő teljesítményszámlálóit Fizikai lemez (kiválaszthat számlálókat egy adott meghajtóra vagy az összes elérhető helyi meghajtóra):
    • Átl. Disk Szeptember / Átadás
    • Átl. A lemez sorának hossza
    • Átlagos lemezbájt / átvitel
    • Lemez bájt / mp
    • Lemezátvitel / mp
    • IO / sec felosztása
  5. Megváltoztathatja az egyéb adatgyűjtési lehetőségeket. Alapértelmezés szerint a számláló értékeket 15 másodpercenként gyűjtik.A valósidejű lemezteljesítmény-adatok megjelenítéséhez adja hozzá a megadott számlálót a Perfmonhoz a Megfigyelő eszközök -> Teljesítményfigyelő szakaszban..
  6. Meg kell kezdeni a teljesítményszámláló-adatok gyűjtését (kezdet), és várja meg az elemzéshez elegendő információ gyűjtését. Ezután kattintson az RMB elemre a set u select menüben leállítása;
  7. Az összegyűjtött lemez adatok megtekintéséhez keresse fel a Perfmon -> Jelentések -> Felhasználó által definiált -> Data_Disk_IO -> a készlet. Alapértelmezés szerint a lemez adatok grafikonként jelennek meg;
  8. Az Ctrl + G váltson üzemmódba jelentés.

Hogyan értelmezhető a lemez teljesítményének eredménye a Perfmon-ban? A lemezes alrendszer teljesítményének gyors elemzéséhez meg kell vizsgálnia legalább a következő 5 számláló értékét.

A számláló adatok elemzésekor kívánatos lenne áttekintést adni a fizikai lemezek konfigurációjáról (hogy RAID / Stripe / lemezek száma és típusa van-e használt, a gyorsítótár elérhetősége stb.).
  • tárcsa sec/ Átadás - a tároló eszköz / lemez - lemez késés egy írási / olvasási művelet végrehajtásához szükséges idő. Ha a késleltetés meghaladja a 25 ms-ot (0,25) vagy annál nagyobb, akkor a lemeztáblának nincs ideje műveletek végrehajtására. Nagyon terhelt rendszereknél az érték nem haladhatja meg a 10 ms-ot (0,1);
  • Lemezátvitel / mp - Az olvasási / írási műveletek száma másodpercenként (IOPS). Ez a lemezekhez való hozzáférés intenzitásának fő mutatója (az IOPS közelítő értékei a különféle típusú lemezekre a cikk végén kerülnek bemutatásra);
  • tárcsa bytes/ Sec - átlagos lemezcsere (olvasás / írás) másodpercenként. A maximális értékek a lemez típusától függenek (150–250 MB / másodperc - normál lemezhez és 500–10000 az SSD-hez);
  • osztott IO/ sec - a lemez széttöredezettségének jelzője, amikor az operációs rendszernek egy I / O műveletet több műveletre kell felosztania. Azt is jelezheti, hogy az alkalmazás túlságosan sok olyan adatblokkot igényel, amelyeket nem lehet egyetlen művelettel továbbítani;
  • Átlagos. tárcsa sorban áll hossz- sor hossza a lemezen (a feldolgozásig folyamatban lévő tranzakciók száma). Egyetlen lemezen a sor hossza nem haladhatja meg a 2-et. 4 lemezes RAID-tömb esetén a 8-ig terjedő sorhossz érvényes értéknek tekinthető..

IOPS tesztelése Windows rendszeren a DiskSpd segítségével

A Microsoft azt javasolja, hogy a segédprogramot használjanak a lemez alrendszerének terheléséhez és annak teljesítményének méréséhez. DiskSpd (Https://aka.ms/diskspd). Ez egy konzol segédprogram, amely I / O műveleteket hajthat végre a megadott célponttal több szálban. Nagyon gyakran használom ezt a segédprogramot a tárolás teljesítményének mérésére az IOPS-ben, és megkapom a maximális olvasási / írási sebességet ebből a szerverből (természetesen a teljesítményt a tárolási oldalról is meg lehet mérni, ebben az esetben a diskspd-t használják a betöltés generálására).

A segédprogram nem igényel telepítést, csak töltse le és csomagolja ki az archívumot egy helyi lemezre. X64 bites rendszerek esetén használja az amd64fre könyvtár diskspd.exe verzióját.

A következő parancsot használom a lemez tesztelésére:

diskspd.exe -c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L E: \ diskpsdtmp.dat> DiskSpeedResults.txt

Fontos. A diskspd.exe használatakor meglehetősen nagy terhelés keletkezik a vizsgált rendszer lemezein és CPU-ján. Ezért, annak érdekében, hogy ne csökkenjen a felhasználók termelékenysége, nem javasoljuk, hogy csúcsidőben termelékeny rendszereken futtassák.

  • -c50G - fájlméret 50 GB (jobb, ha nagy fájlméretet használunk, hogy az ne illeszkedjen a tárolóvezérlő gyorsítótárába);
  • -D300 - a teszt időtartama másodpercben;
  • -r - véletlenszerű olvasás / írás (ha szekvenciális hozzáférést kell tesztelnie, használja a -s);
  • -t8 - szálak száma;
  • -W40 - az írási műveletek és az olvasási műveletek aránya 40% / 60%;
  • -Ø32- sor hossza;
  • -b64K - blokk mérete;
  • -sh - Ne használjon gyorsítótárazást
  • -L - mérje a késleltetést;
  • E: \ diskpsdtmp.dat - teszt fájl elérési útja.

A stresszteszt elvégzése után az átlagos teljesítményértékeket a kapott táblázatokból lehet megszerezni..

Például a teszt során a következő általános teljesítményadatokat (teljes IO) szereztem meg:

  • MiB / s - 241 (kb. 252 Mb / s, nem rossz)
  • IOPS - 3866.49 (kiváló!)
  • Átlagos késés - 66,206 ms (egy kicsit magas!)

Az egyedi értékeket csak olvasott műveletekhez kaphatja meg (4. Szakasz) Olvasás IO ) vagy nyilvántartások (4. szakasz) Write IO ).

Miután több lemezt vagy LUN-ot tesztelt a tároláson a diskspd használatával, összehasonlíthatja őket, vagy kiválaszthat tömböt a feladathoz szükséges teljesítményhez.

Hogyan érhető el az IOPS és a lemezes alrendszer teljesítménye a PowerShell használatával?

Nemrég találkoztam egy PowerShell szkripttel (a Microsoft MVP szerzője, Mikael Nystrom), amely lényegében a segédprogram kiegészítője. SQLIO.exe (tesztkészlet a fájltárolási teljesítmény kiszámításához).
megjegyzés. 2015 decemberében a Microsoft bejelentette a segédprogram támogatásának megszüntetését és az SQLIO helyettesítését egy univerzálisabb eszközzel - Diskspd, az SQLIO terjesztési fájlok törlésével a webhelyről. Ezért magának kell keresnie az sqlio.exe fájlt, vagy töltse le a weboldalunkon (az archívumban található a szkripttel).

Tehát töltse le a 2 fájlt tartalmazó archívumot: SQLIO.exe és DiskPerformance.ps1 (disk-perf-iops.ZIP - 73Kb), és bontsa ki az archívum tetszőleges könyvtárba.

Példa egy PowerShell-parancsfájl futtatására az IOPS meghatározására:

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

A következő argumentumokat használtam a szkriptben:

  • -TestFileName teszt.dataz FSUTIL segédprogrammal létrehozott fájl neve;
  • -TestFileSizeInGB 1 - rfájlméret a tesztekhez. Érvényes opciók: 1,5,10,50,100,500,1000 GB. A fájl méretének nagyobbnak kell lennie, mint a rendszer gyorsítótárának. Ellenkező esetben az IOPS-t a gyorsítótárban lévő adatok alapján fogják megmérni, nem a lemezen;
  • -TestFilepath C: \ Temp - jelzi azt a meghajtót, amelyre a teljesítmény kiszámítását elvégzi, és azt a meghajtót, amelyben a tesztfájl létrejön. Megengedett a UNC elérési útjának megadása a hálózati mappához;
  • -TestMode kap-LargeIO - eKét terhelésmérési lehetőség van., kap-SmallIO - IOPS mérve, kap-LargeIO - mért adatsebesség. A különbség a SmallIO és a LargeIO argumentumok között, blokkméretekben, ha 8 és 812 ktbyte sebességet mérnek, valamint a véletlenszerű vagy a szekvenciális hozzáférés típusa között;
  • -FastMode igaz  - gyors üzemmódban minden teszt 10 másodpercig tart, egyébként 60 másodpercig;
  • -RemoveTestFile igaz - törölje a teszt fájlt a teszt végén;
  • -OutputFormat ki-GridView - a mérési eredmények kimenete a PowerShell konzolra lehetséges (formátum-táblázat) vagy a grafikus táblázat külön ablakában (ki-Gridview);

Esetünkben a lemeztárat (a virtuális vmdk lemezt a VMFS tárolón teszteltük, amely a HP MSA 2040 lemeztáblán található, hozzáféréssel SAN-on keresztül) átlagos IOPS körülbelül 15000 és az adatátviteli sebesség (sávszélesség) kb 5 Gb / s.

Az alábbi táblázat a meghajtók különböző típusainak megközelítő IOPS-értékeit mutatja:

típusIOPS
SSD (SLC)6000
SSD (MLC)1000
15K / perc175-200
10K / perc125-150
7,2K RPM50-75
6 meghajtó RAID5 10 000 ford / perc sebességgel900

Az alábbiakban felsorolunk néhány javaslatot az IOPS általános szolgáltatásának lemezteljesítményére:

  • Microsoft csere 2010 - 5000 felhasználóval, akik mindegyike 75-et kap, és naponta 30 levelet küld, legalább 3750 IOPS-re lesz szükség
  • Microsoft SQL 2008 szerver - másodpercenként 3500 SQL tranzakcióval (TPS) - 28000 IOPS
  • Normál Windows alkalmazáskiszolgáló 10-100 felhasználó számára - 10-40 IOPS