Hoe meet je de opslagprestaties (IOPS, latentie, doorvoer) op Windows?
Heb je je ooit afgevraagd of je opslagconfiguratie wel naar behoren presteert? Dan ben je niet de enige. Soms voelt alles traag aan, of wil je gewoon weten hoe je SSD presteert in vergelijking met die geavanceerde SAN. De kunst is om IOPS, latentie en doorvoer te meten zonder ingewikkelde hardwaretests. Gelukkig heeft Windows een aantal ingebouwde tools en een paar goede methoden waarmee je een kijkje achter de schermen kunt nemen. Deze handleiding beschrijft een aantal manieren om dat te doen, van eenvoudige tellers tot meer geavanceerde commandoregeltests, zodat je kunt achterhalen of je schijf overuren draait of juist overbelast raakt door de wachtrij.
Bovendien helpt het interpreteren van deze cijfers bij het oplossen van problemen of om er zeker van te zijn dat je waar voor je geld krijgt. Of je nu een lokale SSD, een gedeelde map op het netwerk of een SAN-volume test, deze methoden geven een redelijk goed beeld van de gezondheid en snelheid van je opslag.
Opslag-I/O vastleggen met behulp van schijfprestatiemeters in Windows
Hoe u Performance Monitor kunt gebruiken om de IOPS en latentie van uw opslag te controleren
Het is misschien wat vreemd, maar Windows Performance Monitor (Perfmon) is net als die oude vriend die aan je blijft plakken, maar superhandig is voor snelle controles. Je kunt een gegevensverzamelaar instellen die prestatiemeters registreert zoals Schijf sec/Transfer of Schijftransfers/sec. Zo helpt het:
- Waarom: Het biedt een doorlopend realtime of opgenomen overzicht van de belasting van uw opslag, wat essentieel is bij het opsporen van problemen met trage schijven of het controleren van upgrades.
- Wanneer: Dit is van toepassing als de schijf traag aanvoelt, of als u nieuwsgierig bent naar de piekbelastingstijden.
- Wat je kunt verwachten: Na de uitvoering krijg je grafieken of rapporten te zien met de schijflatentie, IOPS en doorvoer – in principe de belangrijkste meetwaarden.
- Open Prestatiemonitor (typ “perfmon” in het Startmenu).
- Maak een nieuwe gegevensverzamelingsset aan (klik met de rechtermuisknop op Gegevensverzamelingssets > Nieuw > Gegevensverzamelingsset ) en kies Handmatig aanmaken.
- Geef het een naam en selecteer vervolgens Gegevenslogboeken maken > Prestatiemeter.
- Klik in de eigenschappen op ‘Toevoegen’ om tellers onder het object ‘Fysieke schijf’ op te nemen:
- Gemiddelde schijfsec./overdracht
- Gemiddelde lengte van de schijfwachtrij
- Gemiddeld aantal schijfbytes per overdracht
- Schijfbytes/sec
- Schijfoverdrachten/sec
- Splitsing van IO/sec
- Stel het bemonsteringsinterval in — de standaardwaarde is 15 seconden, maar voor meer realtime inzichten kunt u het bijvoorbeeld op 5 seconden instellen (als uw systeem dat aankan).
- Start de dataverzamelaar (klik op Start ) en laat deze een tijdje draaien — minstens een paar minuten om stabiele gegevens te verzamelen.
- Klik met de rechtermuisknop op uw collectorset en selecteer Stoppen. Om de gegevens te bekijken, gaat u naar Rapporten > Gebruikersgedefinieerd > uw setnaam. Standaard worden grafieken weergegeven, maar u kunt overschakelen naar de rapportmodus met Ctrl + G.
Nu komt het leuke gedeelte: het analyseren van die tellers. Als de prestaties tegenvallen, kijk dan vooral naar Disk sec/Transfer (idealiter minder dan 10 ms voor SSD’s, maar minder dan 25 ms is acceptabel voor traditionele harde schijven).Een hoge Disk Transfers/sec en lange wachtrijen wijzen erop dat de schijf overuren draait – waardevolle informatie om knelpunten op te sporen.
Pro-tip: Stem de aanrechtbladen af op uw opbergconfiguratie.
Als je bijvoorbeeld een RAID-array of SSD-cache gebruikt, controleer dan de prestaties van de afzonderlijke schijven. Inzicht in je configuratie (zoals RAID-type, cachegroottes en schijftypen) helpt bij het beter interpreteren van de cijfers. En let op: bij sommige configuraties kunnen deze tellers sterk fluctueren, vooral als er andere workloads actief zijn.
DiskSpd: Stresstesten en het meten van schijfprestaties
DiskSpd gebruiken voor een diepgaande analyse van schijfsnelheid en IOPS
Oké, DiskSpd is dan wel niet standaard in Windows ingebouwd, maar het is sterk aan te raden — vooral voor stresstests of om de maximale doorvoersnelheid te bepalen. Het is een commandoregelprogramma van Microsoft, erg handig als je de grenzen van je opslag wilt opzoeken of de opgegeven prestaties wilt controleren.
Het vereist wel wat voorbereiding: download het ZIP-bestand (installatie is niet nodig), pak het ergens uit en voer de opdrachten uit via PowerShell of de opdrachtprompt. Hier is een typische opdracht die ik heb gebruikt, om een idee te krijgen van de pure schijfsnelheid:
diskspd.exe –c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L E:\diskpsdtmp.dat > DiskSpeedResults.txt
Dit zorgt voor een behoorlijke belasting, dus laat het niet op je hoofdserver draaien tijdens werktijden, tenzij je geen problemen hebt met enige vertraging. Hier volgt een korte uitleg van wat het doet:
- -c50G : Maakt een testbestand van 50 GB aan. Gebruik grote bestanden om te voorkomen dat je tegen de cachelimieten aanloopt.
- -d300 : Test gedurende 5 minuten (300 seconden).
- -r : Willekeurige I/O, wat een betere weergave is van gegevenstoegang in de praktijk.
- -w40 : 40% van de bewerkingen zijn schrijfbewerkingen, 60% leesbewerkingen — pas dit aan op basis van uw werklast.
- -t8 : 8 threads, dus het kan systemen met meerdere cores belasten.
- -o32 : Wachtrijdiepte — verhoog deze waarde als uw SAN meer parallelle verwerking ondersteunt.
- -b64K : Blokgrootte — grote blokken zorgen over het algemeen voor hogere snelheden.
- -Sh : Schakel de OS-cache uit om onbewerkte getallen te verkrijgen.
- -L : Meet de latentie tijdens de test.
Verwacht de uitvoer in `DiskSpeedResults.txt`, waarin de doorvoersnelheden in MiB/sec, IOPS en de gemiddelde latentie worden weergegeven. Dit is *super* handig bij het vergelijken van schijven of het plannen van upgrades.
Haal het maximale uit PowerShell: snelle IOPS- en latency-checks
PowerShell-scripts voor het bewaken van schijfprestaties
Voor snelle codefragmenten is er een PowerShell-script van Mikael Nystrom dat gebruikmaakt van de oude SQLIO -tool. Hoewel Microsoft de officiële ondersteuning voor SQLIO heeft stopgezet, zijn het script en de tool nog steeds online te vinden – je moet alleen even zoeken.
Zodra je sqlio.exe en het script DiskPerformance.ps1 hebt uitgepakt, kun je opdrachten uitvoeren zoals:
.\DiskPerformance.ps1 -TestFileName test.dat –TestFileSizeInGB 1 -TestFilepath C:\temp -TestMode Get-LargeIO -FastMode True -RemoveTestFile True -OutputFormat Out-GridView
Met dit commando wordt een testbestand van 1 GB aangemaakt in `C:\temp`, wordt een snelheidstest uitgevoerd met een snelle modus van 10 seconden, waarna de resultaten grafisch worden weergegeven. Het is een handige manier om een momentopname te krijgen van de prestaties van je schijf zonder Perfmon te hoeven gebruiken of stresstests uit te voeren.
Houd er rekening mee dat deze tool een aanzienlijke belasting kan genereren. Vermijd daarom het gebruik ervan tijdens piekuren of op productiesystemen, tenzij u uw gebruikers wilt irriteren – of misschien wilt testen of de prestaties daadwerkelijk aan de eisen voldoen.
Samenvatting
- Gebruik Perfmon-tellers voor continue monitoring, vooral als u een schijfprobleem vermoedt.
- Probeer DiskSpd eens voor stresstests en het meten van pure prestaties — ideaal voor benchmarking.
- Gebruik PowerShell-scripts voor snelle tests, maar wees voorzichtig met de belasting ervan op live systemen.
Samenvatting
Het in kaart brengen van schijfprestaties is niet altijd even eenvoudig, en soms kunnen de cijfers wat verwarrend zijn. Maar met deze tools – Perfmon, DiskSpd en een goed PowerShell-script – kom je een heel eind in de buurt van het begrijpen van de werkelijke mogelijkheden van je opslag. Niets is zo waardevol als het zien van de daadwerkelijke prestatiecijfers bij het oplossen van knelpunten of het plannen van capaciteit. Houd de werkbelasting goed in de gaten, vooral tijdens stresstests, en interpreteer de gegevens in de context van je hardwareconfiguratie. Hopelijk bespaart dit iemand een hoop giswerk.