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:
- početak
PerfMon
; - Napravite novi skup prikupljača podataka (Skup za prikupljanje podataka). odabrati Stvorite ručno;
- Odaberite opciju Stvaranje podataka -> Brojač performansi;
- 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
- 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.
- 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;
- 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;
- 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
-c50G
- veličina datoteke 50 GB (bolje je koristiti veliku veličinu datoteke tako da se ne uklapa u predmemoriju regulatora za pohranu);-D30
0 - 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.dat - naziv 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:
vrsta | IOPS |
SSD (SLC) | 6000 |
SSD (MLC) | 1000 |
15K RPM | 175-200 |
10K RPM | 125-150 |
7.2K RPM | 50-75 |
RAID5 od 6 pogona s 10.000 RPM-a | 900 |
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