Mjerenje performansi i IOPS tvrdih diskova i pohrane u sustavu Windows

Jedna od glavnih mjernih podataka za ocjenu performansi postojećeg ili planiranog sustava za pohranu jest IOPS (ulazni/ Izlaz operacije po drugo - broj ulazno / izlaznih operacija). Jednostavno rečeno, IOPS je broj blokova koji se po jedinici vremena mogu čitati ili pisati u medije ili datotečni sustav. Što je taj broj veći, to su veće performanse ovog diskovnog podsustava (iskreno, samu IOPS vrijednost treba razmotriti zajedno s drugim karakteristikama sustava za pohranu, kao što su prosječna kašnjenja, propusnost itd.).

U ovom ćemo članku razmotriti nekoliko načina za mjerenje performansi sustava za pohranu koji se koristi u IOPS-u pod Windowsom (lokalni tvrdi disk, SSD pogon, SMB mrežna mapa, CSV volumen ili LUN pri pohrani u SAN).

sadržaj:

  • Brojači performansi podsistema diska Windows
  • Testiranje IOPS-a na Windows pomoću DiskSpd-a
  • Kako doći do performansi IOPS-a i diska pomoću PowerShell-a?

Brojači performansi podsistema diska Windows

Možete procijeniti trenutačno opterećenje na diskovnom podsustavu pomoću ugrađenih Windows brojača performansi predstava monitor. Za prikupljanje podataka na ovim brojačima:

  1. početak PerfMon;
  2. Napravite novi skup prikupljača podataka (Skup za prikupljanje podataka). odabrati Stvorite ručno;
  3. Odaberite opciju Stvaranje podataka -> Brojač performansi;
  4. Sada u svojstva novog skupa za prikupljanje podataka dodajte sljedeće brojače performansi objekta Fizički disk (možete odabrati brojače za određeni pogon ili za sve dostupne lokalne pogone):
    • Prosječni. Disk Sek. / Prijenos
    • Prosječni. Duljina reda diska
    • Prosječni bajtovi na disku / prijenos
    • Disk bajtova / sek
    • Prijenos diska / sek
    • Podjela IO / sek
  5. Možete promijeniti i druge mogućnosti prikupljanja podataka. Prema zadanim postavkama, brojače se prikupljaju na svakih 15 sekundi. Da biste prikazali podatke o performansama diska u stvarnom vremenu, dodajte navedeni brojač Perfmonu u odjeljku Alati za nadzor -> Monitor performansi.
  6. Ostaje započeti prikupljanje brojača podataka o učinku (početak) i pričekajte prikupljanje dovoljno informacija za analizu. Nakon toga, pritisnite RMB na postavljenom odabiru zaustaviti;
  7. Da biste pogledali prikupljene podatke s diska, idite na Perfmon -> Izvješća -> Korisnički definirano -> Data_Disk_IO -> svoj set. Podaci diska se prema zadanom prikazuju kao grafički prikazi;
  8. s Ctrl + G prebaciti u način rada izvješće.

Kako protumačiti rezultate izvedbe diska u Perfmonu? Za brzu analizu performansi diskovnog podsustava trebate pogledati vrijednosti barem sljedećih 5 brojača.

Prilikom analize podataka brojača poželjno je imati predodžbu o konfiguraciji fizičkih diskova (koriste li se RAID / Stripe / broj i vrsta diskova, dostupnost predmemorije itd.).
  • disk sek/ Prijenos - vrijeme potrebno za obavljanje jedne operacije pisanja / čitanja na uređaju za pohranu / disk - kašnjenje diska. Ako je kašnjenje veće od 25 ms (0,25) ili više, disk disk nema vremena za obavljanje operacija. Za visoko opterećene sustave vrijednost ne smije prelaziti 10 ms (0,1);
  • Prijenos diska / sek - Broj operacija čitanja / pisanja u sekundi (IOPS). Ovo je glavni pokazatelj intenziteta pristupa diskovima (približne vrijednosti u IOPS-u za različite vrste diskova predstavljene su na kraju članka);
  • disk bajtova/ Sek - prosječna razmjena diska (čitanje / pisanje) u sekundi. Maksimalne vrijednosti ovise o vrsti diska (150-250 MB / sekunda - za običan disk i 500-10000 za SSD);
  • Split IO/ sek - pokazatelj fragmentacije diska kada operativni sustav mora podijeliti jednu I / O operaciju u nekoliko operacija. Može također ukazivati ​​da aplikacija zahtijeva prevelike blokove podataka koji se ne mogu prenijeti u jednoj operaciji;
  • Prosječni. disk red dužina- duljina reda na disku (broj transakcija na čekanju za obradu). Za jedan disk dužina reda ne smije biti veća od 2. Za RAID niz od 4 diska, dužina čekanja do 8 smatrat će se valjanom vrijednošću..

Testiranje IOPS-a na Windows pomoću DiskSpd-a

Microsoft preporučuje korištenje ovog uslužnog programa za generiranje opterećenja na diskovnom podsustavu i mjerenje njegovih performansi. DiskSpd (Https://aka.ms/diskspd). Ovo je uslužni program za konzolu koji može izvoditi I / O operacije s navedenim ciljem u nekoliko niti. Ovaj alat često koristim za mjerenje performansi pohrane u IOPS-u i postizanje maksimalne brzine čitanja / pisanja s ovog poslužitelja (naravno, možete izmjeriti i izvedbu sa strane za pohranu, u ovom slučaju diskspd će se koristiti za generiranje učitavanja).

Ovaj uslužni program ne zahtijeva instalaciju, samo preuzmite i raspakirajte arhivu na lokalni disk. Za x64 bitne sustave koristite inačicu diskspd.exe iz direktorija amd64fre.

Za testiranje diska koristim sljedeću naredbu:

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

Važno je. Kada koristite diskspd.exe, na diskovima i CPU-u testiranog sustava stvara se prilično veliko opterećenje. Stoga, kako ne bi uzrokovali pad produktivnosti za korisnike, ne preporučujemo pokretanje na produktivnim sustavima tijekom vršnih sati.

  • -c50G - veličina datoteke 50 GB (bolje je koristiti veliku veličinu datoteke tako da se ne uklapa u predmemoriju regulatora za pohranu);
  • -D300 - trajanje testa u sekundi;
  • -r - slučajno čitanje / pisanje (ako trebate testirati uzastopni pristup, koristite -s);
  • -T8 - broj niti;
  • -W40 - omjer operacija pisanja i operacija čitanja 40% / 60%;
  • -o32- duljina reda;
  • -b64K - veličina bloka;
  • -Sh - Ne koristite predmemoriranje
  • -L - mjeri latenciju;
  • E: \ diskpsdtmp.dat - putanja testne datoteke.

Nakon što je test otpornosti završen, iz dobivenih tablica mogu se dobiti prosječne vrijednosti performansi..

Na primjer, u mom testu dobiveni su sljedeći opći podaci o performansama (Total IO):

  • MiB / s - 241 (oko 252 Mb / s, nije loše)
  • IOPS - 3866,49 (izvrsno!)
  • Prosječno kašnjenje - 66.206 ms (malo visoko!)

Pojedinačne vrijednosti možete dobiti samo za operacije čitanja (odjeljak Pročitajte IO ) ili zapisima (odjeljak Pisanje IO ).

Isprobavši nekoliko diskova ili LUN-ova na pohrani pomoću diskspd-a, možete ih usporediti ili odabrati niz s željenom izvedbom za svoje zadatke.

Kako doći do performansi IOPS-a i diska pomoću PowerShell-a?

Nedavno sam naišao na PowerShell skriptu (autor Microsoft MVP-a, Mikael Nystrom), koja je u osnovi dodatak za uslužni program SQLIO.eXE (skup testova za izračunavanje performansi datoteke za pohranu).
primjedba. U prosincu 2015. Microsoft je najavio prekid podrške za uslužni program i zamjenu SQLIO univerzalnijim alatom - Diskspd, brisanjem SQLIO distribucijskih datoteka sa svoje web lokacije. Zbog toga ćete sami morati potražiti sqlio.exe ili preuzeti sa naše web stranice (koja se nalazi u arhivi sa skriptu).

Dakle, preuzmite arhivu koja sadrži 2 datoteke: SQLIO.eXE i DiskPerformance.ps1 (disk-perf-iops.ZIP - 73Kb) i raspakirajte arhivu u proizvoljnom direktoriju.

Primjer pokretanja PowerShell skripte za određivanje IOPS:

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

U skripti sam koristio sljedeće argumente:

  • -TestFileName test.datnaziv datoteke koju je stvorio uslužni program FSUTIL;
  • -TestFileSizeInGB 1 - rveličina datoteke za testove. Važeće opcije su 1,5,10,50,100,500,1000 GB. Veličina datoteke mora biti veća od veličine predmemorije sustava. Inače, IOPS će se mjeriti za podatke u predmemoriji, a ne na disku;
  • -TestFilepath C: \ Temp - označava pogon za koji će se obavljati proračun performansi i imenik na pogonu u kojem će se stvoriti testna datoteka. Dopušteno je odrediti put UNC-a do mrežne mape;
  • -TestMode dobiti-LargeIO - ePostoje dvije mogućnosti mjerenja opterećenja., dobiti-SmallIO - mjereno IOPS, dobiti-LargeIO - izmjerena brzina podataka. Razlika između argumenata SmallIO i LargeIO, u veličinama blokova pri mjerenju brzine od 8 KB i 512 Kbata, i vrsti pristupa Random, odnosno Sekvencijalni;
  • -FastMode istinski  - u načinu Fastmode svaki test traje 10 sekundi, u suprotnom 60 sekundi;
  • -RemoveTestFile istinski - izbrisati testnu datoteku na kraju testa;
  • -outputformat van-GridView - moguć je rezultat rezultata mjerenja na PowerShell konzoli (format-stol) ili u zasebnom prozoru grafičke tablice (van-GridView);

U našem slučaju diskovni niz (virtualni disk vmdk testiran je na VMFS memoriji koja se nalazi na HP MSA 2040 diskovnoj polici s pristupom putem SAN-a) pokazao je prosječni IOPS od oko 15000 i brzine prijenosa podataka otprilike 5 Gb / s.

Sljedeća tablica prikazuje približne IOPS vrijednosti za razne vrste pogona:

vrstaIOPS
SSD (SLC)6000
SSD (MLC)1000
15K RPM175-200
10K RPM125-150
7.2K RPM50-75
RAID5 od 6 pogona s 10.000 RPM-a900

Slijedi nekoliko preporuka za performanse diska u IOPS-u za uobičajene usluge:

  • Microsoft razmjena 2010 - s 5000 korisnika, od kojih svaki primi 75 i pošalje 30 pisama dnevno, trebat će najmanje 3.750 IOPS
  • Microsoft SQL 2008. poslužitelj - s 3500 SQL transakcija u sekundi (TPS) - 28000 IOPS
  • Normalni Windows aplikacijski poslužitelj za 10-100 korisnika - 10-40 IOPS