Merjenje zmogljivosti in IOPS trdih diskov in shranjevanje v sistemu Windows

Ena glavnih meritev za oceno učinkovitosti obstoječega ali načrtovanega sistema za shranjevanje je IOPS (VnosIzhod Operacije Per Drugič - število vhodno / izhodnih operacij). Preprosto povedano, IOPS je število blokov, ki jih je mogoče brati ali zapisati v medije ali datotečni sistem na enoto časa. Večja kot je ta številka, večja je zmogljivost tega diskovnega podsistema (odkrito povedano, treba je upoštevati samo vrednost IOPS v povezavi z drugimi značilnostmi pomnilniških sistemov, kot so povprečna zamuda, prepustnost itd.).

V tem članku bomo pogledali več načinov za merjenje zmogljivosti sistema za shranjevanje, ki se uporablja v IOPS v sistemu Windows (lokalni trdi disk, pogon SSD, omrežna mapa SMB, prostornina CSV ali LUN pri shranjevanju v SAN).

Vsebina:

  • Števci uspešnosti podsistema diska Windows
  • Testiranje IOPS v sistemu Windows z DiskSpd
  • Kako doseči zmogljivost IOPS in diskovnega podsistema s pomočjo PowerShell-a?

Števci uspešnosti podsistema diska Windows

Trenutno obremenitev diskovnega podsistema lahko ocenite s pomočjo vgrajenih števcev zmogljivosti sistema Windows Zmogljivost Monitor. Za zbiranje podatkov na teh števcih:

  1. Teči Perfmon;
  2. Ustvari nov nabor zbiralcev podatkov (Nabor zbiralcev podatkov) Izberite Ustvari ročno;
  3. Izberite možnost Ustvarite dnevnike podatkov -> Števec zmogljivosti;
  4. Zdaj v lastnostih novega nabora za zbiranje podatkov dodajte naslednje števce zmogljivosti za objekt Fizični disk (lahko izberete števce za določen pogon ali za vse razpoložljive lokalne pogone):
    • Povpr. Disk Sec./Transfer
    • Povpr. Dolžina čakalne vrste diska
    • Povprečni bajti / prenos
    • Bajti na disku / sek
    • Prenosi diskov / sek
    • Razdeljeno IO / sek
  5. Lahko spremenite druge možnosti zbiranja podatkov. Privzeto se vrednosti števcev zbirajo na vsakih 15 sekund.Če želite prikazati podatke o zmogljivosti diska v realnem času, morate v odseku Orodja za spremljanje - v nadzornem računalniku> Učinkoviti nadzor dodati določen števec Perfmon..
  6. Ostati je treba začeti zbirati podatke števcev uspešnosti (Začni) in počakajte na zbiranje zadostnih informacij za analizo. Po tem kliknite RMB na set u select Nehaj;
  7. Če si želite ogledati zbrane podatke na disku, pojdite na Perfmon -> Poročila -> Uporabniško določeno -> Data_Disk_IO -> vaš niz. Podatkovni diski so privzeto prikazani kot grafi;
  8. Uporaba Ctrl + G preklopite v način Poročilo.

Kako razložiti rezultate zmogljivosti diska v Perfmonu? Za hitro analizo zmogljivosti diskovnega podsistema morate pogledati vrednosti vsaj naslednjih 5 števcev.

Pri analizi podatkov števcev je priporočljivo imeti predstavo o konfiguraciji fizičnih diskov (ali se uporabljajo RAID / Stripe / število in vrsta diskov, razpoložljivost predpomnilnika itd.).
  • Disk sek/ Prenos - čas, potreben za izvedbo ene operacije pisanja / branja na pomnilniški napravi / disku - zakasnitvi diska. Če je zamuda večja od 25 ms (0,25) ali več, diskovni niz nima časa za izvajanje operacij. Za visoko obremenjene sisteme vrednost ne sme presegati 10 ms (0,1);
  • Prenosi diskov / sek - Število operacij branja / pisanja na sekundo (IOPS). To je glavni indikator intenzivnosti dostopa do diskov (približne vrednosti IOPS za različne vrste diskov so predstavljene na koncu članka);
  • Disk Bajti/ Sek - povprečna izmenjava diskov (branje / pisanje) na sekundo. Najvišja vrednost je odvisna od vrste diska (150-250 Mb / sekundo - za navaden disk in 500-10000 za SSD);
  • Split IO/ sek - indikator razdrobljenosti diska, ko mora operacijski sistem eno V / I operacijo razdeliti na več operacij. Lahko tudi kaže, da aplikacija zahteva prevelike bloke podatkov, ki jih ni mogoče prenesti v eni operaciji;
  • Povpr. Disk Čakalna vrsta Dolžina- dolžina čakalne vrste na disk (število transakcij, ki čakajo na obdelavo). Dolžina čakalne vrste za en disk ne sme presegati 2. Za niz RAID s 4 diski bo dolžina čakalne vrste do 8 veljala za veljavno vrednost..

Testiranje IOPS v sistemu Windows z DiskSpd

Microsoft priporoča uporabo pripomočka za ustvarjanje nalaganja na diskovnem podsistemu in merjenje njegove zmogljivosti. Diskspd (https://aka.ms/diskspd). To je pripomoček za ukazno mizo, ki lahko izvede I / O operacije z določenim ciljem v več niti. Ta pripomoček pogosto uporabljam za merjenje uspešnosti shranjevanja v IOPS in za dosego največje hitrosti branja / pisanja s tega strežnika (seveda lahko izmerite tudi uspešnost s strani pomnilnika; v tem primeru se bo za ustvarjanje nalaganja uporabil diskspd).

Ta pripomoček ne zahteva namestitve, samo naložite in razpakirajte arhiv na lokalni disk. Za x64 bitne sisteme uporabite različico diskspd.exe iz imenika amd64fre.

Za preizkušanje diska uporabim naslednji ukaz:

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

Je pomembno. Pri uporabi diskspd.exe se na diskih in CPU-ju testiranega sistema ustvari precej velika obremenitev. Zato, da ne bi pri uporabnikih padli produktivnosti, ne priporočamo, da se v največjih urah izvaja v produktivnih sistemih.

  • -c50G - velikost datoteke 50 GB (bolje je uporabiti velikost datoteke tako, da se ne prilega v predpomnilnik krmilnika pomnilnika);
  • -d300 - trajanje preizkusa v sekundah;
  • -r - naključno branje / pisanje (če morate preizkusiti zaporedni dostop, uporabite -s);
  • -t8 - število niti;
  • -w40 - razmerje med pisnimi operacijami in operacijami branja 40% / 60%;
  • -o32- dolžina čakalne vrste;
  • -b64K - velikost bloka;
  • - Ne uporabljajte predpomnilnika
  • -L - izmerite zamudo;
  • E: \ diskpsdtmp.dat - pot preskusne datoteke.

Po končanem stresnem testu lahko iz dobljenih tabel dobimo povprečne vrednosti učinkovitosti..

Na primer, v mojem testu smo dobili naslednje splošne podatke o uspešnosti (Skupni IO):

  • MiB / s - 241 (približno 252 Mb / s, ni slabo)
  • IOPS - 3866,49 (odlično!)
  • Povprečna zamuda - 66.206 ms (malce visoko!)

Posamezne vrednosti lahko dobite samo za operacije branja (razdelek Preberi IO ) ali zapisov (oddelek Pišite IO ).

Če ste preizkusili več diskov ali LUN-ov v shrambi s pomočjo diskspd, jih lahko primerjate ali izberete matriko z želeno uspešnostjo za svoje naloge.

Kako doseči zmogljivost IOPS in diskovnega podsistema s pomočjo PowerShell-a?

Pred kratkim sem naletel na skript PowerShell (avtor Microsoft MVP, Mikael Nystrom), ki je v bistvu dodatek za pripomoček SQLIO.exe (nabor testov za izračun uspešnosti shranjevanja datotek).
Opomba. Decembra 2015 je Microsoft napovedal prekinitev podpore za pripomoček in zamenjavo SQLIO z bolj univerzalnim orodjem - Diskspd, z brisanjem distribucijskih datotek SQLIO s svojega spletnega mesta. Zato boste morali sami poiskati sqlio.exe ali si ga naložiti z našega spletnega mesta (ki se nahaja v arhivu s skriptom).

Torej, prenesite arhiv, ki vsebuje 2 datoteki: SQLIO.exe in Izvedba diska.ps1 (disk-perf-iops.ZIP - 73Kb) in razpakirajte arhiv v poljuben imenik.

Primer izvajanja skripta PowerShell za določitev IOPS:

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

V skriptu sem uporabil naslednje argumente:

  • -Ime datoteke test.datime datoteke, ki jo je ustvaril pripomoček FSUTIL;
  • -TestFileSizeInGB 1 - strvelikost datoteke za teste. Veljavne možnosti so 1,5,10,50,100,500,1000 GB. Velikost datoteke mora biti večja od velikosti sistemskega predpomnilnika. V nasprotnem primeru se IOPS meri za podatke v predpomnilniku, ne na disku;
  • -Testfilepath C: \ Temp - označuje pogon, za katerega bo izveden izračun zmogljivosti, in imenik na pogonu, v katerem bo ustvarjena testna datoteka. Dovoljeno je določiti pot UNC do omrežne mape;
  • -Testmode Pridite-LargeIO - eObstajata dve možnosti merjenja obremenitve., Pridite-SmallIO - merjeno z IOPS, Pridite-LargeIO - izmerjena hitrost prenosa podatkov. Razlika med argumenti SmallIO in LargeIO v velikostih blokov pri merjenju hitrosti 8 Kby in 512 Kby in vrsti dostopa naključno oziroma zaporedno;
  • -Fastmode Res je  - v načinu Fastmode vsak preskus traja 10 sekund, sicer 60 sekund;
  • -RemoveTestFile Res je - na koncu testa izbrišite preskusno datoteko;
  • -Izhodni format Zunaj-Gridview - izhod merilnih rezultatov na konzolo PowerShell je možen (Oblika-Tabela) ali v ločenem oknu grafične tabele (Zunaj-Gridview);

V našem primeru je diskovni niz (navidezni disk vmdk je bil preizkušen na shrambi VMFS, ki se nahaja na diskovni polici HP MSA 2040 z dostopom prek SAN), pokazal povprečen IOPS približno 15.000 in hitrosti prenosa podatkov (pasovna širina) približno 5 Gb / s.

Naslednja tabela prikazuje približne vrednosti IOPS za različne vrste pogonov:

VtipkajteIOPS
SSD (SLC)6000
SSD (MLC)1000
15K RPM175-200
10 K / min125-150
7,2 K / min50–75
RAID5 od 6 pogonov z 10.000 RPM900

Sledi nekaj priporočil za delovanje diska v IOPS za skupne storitve:

  • Microsoft Izmenjava 2010 - s 5.000 uporabniki, od katerih vsak prejme 75 in pošlje 30 pisem na dan, bo potrebnih vsaj 3.750 IOPS
  • Microsoft SQL 2008 strežnik - s 3500 transakcijami SQL na sekundo (TPS) - 28000 IOPS
  • Običajni strežnik aplikacij Windows za 10-100 uporabnikov - 10-40 IOPS