Support

Försäljning

  0752 400 820

  0752-400 830



Arkiv för kategori ‘Lagring’

Vad är IOPS?

Thursday, 22 March, 2012

IOPS står för Input Output Operations Per Second och är ett mått som används för att mäta prestanda på till exempel en hårddisk (SATA/SAS/SSD). Att mäta IOPS är inte alltid det lättaste. Det är många parametrar som du måste ha i åtanke eftersom de spelar in på resultatet. När du mäter IOPS spelar cache en stor roll.

Caching kan göras av operativsystemet och på disknivå på diskens egen cache. Disken har en inbyggd cache med väldigt snabbt minne. Samma gäller för operativsystemet som nyttjar primärminnet för att cacha, vilket är ett väldigt snabbt minne att skriva/läsa från jämfört med en hårddisk. Cache används för att mellanlagra data för skriv och läsningar, vilket medför att du får en mycket snabbare upplevelse mot vad disken skulle prestera utan cache.

Två sätt att mäta IOPS

IOPS mäts oftast på två sätt – sekventiellt och slumpmässigt. Sekventiellt är oftast det snabbaste sättet där du får ut högre IOPS. Detta gäller framförallt på mekaniska hårddiskar (SATA/SAS) där skrivhuvudet på hårddisken inte behöver förflytta sig på samma sätt som vid slumpmässiga skrivningar. Det tar nämligen extra tid att skriva/läsa då skrivhuvudet på en hårddisk måste flytta sig mellan varje skriv/läs.

Detta är fördelen med en SSD-hårddisk (Solid State Disk) där inga rörliga komponenter existerar och alla skriv/läs har en konstant åtkomsttid. Nackdelen med en SSD är att den endast hanterar ett visst antal läsningar/skrivningar per block innan minnet går sönder. Även om dagens SSD har en viss feltolerans och kan hantera trasiga block är dess livslängd i skrivande stund mer begränsad än en SAS/SATA.

Självklart spelar det roll hur mycket hårddisken används. En lågt belastad SSD kan överleva mycket längre än en högt belastad mekanisk disk. Hastigheten på en SSD begränsas av kontrollern som sitter i disken samt hur snabbt minnet i disken är. Till skillnad från en SAS/SATA där hastigheten begränsas primärt av skivornas rotationshastighet och skrivhuvudets hastighet.

Två operationer – läs och skriv

Som namnet antyder delas IOPS upp i två operationer – läs och skriv. Detta för att en läsoperation ofta är snabbare än en skrivoperation.

För att få en uppskattning om vad olika sorters mekaniska hårddiskar klarar av i IOPS följer här en tabell hämtad från wikipedia. “rpm” står för Rrevolutions Per Minute och är hastigheten som skivorna i en mekanisk hårddisk roterar.

SATA 7200 rpm – ~75-100 IOPS
SATA 10000 rpm – ~125-150 IOPS
SAS 10000 rpm – ~140 IOPS
SAS 15000 rpm – ~175-200 IOPS

Vad gäller SSD är det väldigt spritt vad olika diskar klarar av, allt mellan 400 IOPS till 300 000 IOPS. Det finns även SSD-kort som sätts in på PCIe-bussen där du kan uppnå hastigheter upp mot 1.2 miljoner IOPS.

När det gäller ett SAN (Storage Area Network) har man specialanpassade lådor med många hårddiskar i som i sin tur är konfigurerade i RAID. Eftersom många diskar används i ett SAN så sprids läs/skriv-operationerna mellan många diskar och detta leder till högre prestanda i jämförelse mot en enskild disk. Detta gör även att ett SAN kan användas av många fler utan att varje enskild användare får låg prestanda. Ett SAN har även en annan form av cache som används för att öka prestandan, detta kan ses som ett primärminne i själva SAN-lådan.

Hos Ipeer används SAN-lösningar med högkvalitativa enterprisediskar för tjänsterna Hyper-V och Elastic Cloud Server.

Program som mäter IOPS

Det finns ett antal program att mäta IOPS med, men det gäller att veta hur du ska mäta och hur du ska tolka värdena du får ut. Värdet på antal IOPS beror mycket på hur stora block man läser/skriver. Optimal prestanda får du oftast genom att läsa/skriva samma blockstorlek som filsystemet har som blockstorlek.

Några exempel på IOPS-mätningsprogram för Linux är “bonnie++” och “dt”. Du kan även använda “iostat” i Linux för att få fram hur mycket du skriver och läser från disk, både i kB/sec samt TPS (Transactions Per Second, både för läs- och skrivoperationer). “iostat” kan installeras i exempelvis Ubuntu via “apt-get install sysstat”.

“Även “bonnie++” finns som förkompilerat paket och installeras i Ubuntu med “apt-get install bonnie++”. En genomgång av resultatet som bonnie++ genererar kan du se på följande länk: http://www.coker.com.au/bonnie++/readme.html
“dt” kan laddas ner och kompileras med källkoden här: http://www.scsifaq.org/RMiller_Tools/dt.html 

Förhoppningsvis har du nu en bättre bild av vad IOPS är.