# IOPS

IOPS (Input/Output Operations Per Second, en anglès, Operacions d'Entrada/Sortida per segon, en català) és una mesura de rendiment utilitzada majoritàriament en els dispositius d'emmagatzematge, com els discs durs (HDD) i les unitats d'estat sòlid (SSD). Per tal de determinar aquest rendiment en IOPS dels dispositius d'emmagatzematge es tenen en compte les escriptures i lectures que es poden fer per segon en un dispositiu.

## Formes de calcular IOPS

Per poder calcular els IOPS d'un dispositiu d’emmagatzematge s'executa un joc d’operacions o instruccions sobre aquest dispositiu, per tal de simular les operacions d’escriptura i lectura que es podrien fer i així calcular els temps que cal per cada operació. Però per calcular els IOPS no existeix cap estàndard ni joc d’instruccions establert, ni tampoc cap especificació de com han d’estar organitzats els accessos a disc, tant d’escriptura com de lectura, ni tampoc l’organització de les dades en el disc. És per això, que habitualment es calculen els IOPS basats en dues tipologies d’organització de les dades (seqüencial i aleatòria) i una proporció d’operacions d’escriptures i lectures en el disc determinades:
Organització de les dades :
| Seqüencial | Les dades són llegides o escrites en el disc de manera seqüencial, és a dir, es troben en posicions de memòria consecutives (una darrere l’altre). |
| Aleatòries | Les dades són llegides o escrites en el disc de manera aleatòria, és a dir, no segueixen cap ordre ni organització. |
Proporció de les operacions :
| 50% / 50% | El 50% de les operacions són de lectura i el 50% restant d’escriptura. |
| 30% / 70% | El 30% de les operacions són de lectura i el 70% restant d’escriptura o viceversa. |
| 100% | El 100% de les operacions són de lectura o bé d’escriptura. |
Tot i així, podem trobar altres càlculs com el total d’IOPS que inclouen totes les possibles combinacions anteriors o càlculs d’IOPS que inclouen utilitzacions específiques dels dispositius d’emmagatzematge (Bases de Dades, Estacions de Treball, Servidors Web, Servidors de Fitxers o Jocs).

## Factors a tenir en compte

Els principals factors que poden influir en els resultats dels IOPS són:
* Les propietats del dispositiu d’emmagatzematge, que en el cas dels HDD tenen una gran influència, ja que contenen parts mecàniques, les quals són lentes i s'han de moure per tal d’obtenir les dades. En concret en els HDD s'ha de tenir en compte:
** Seek Time: El temps mitjà per situar el capçal sobre el cilindre on està la dada.
** Average Latency: El temps mitjà per tenir la dada sota el capçal un cop estem sobre el cilindre.
* El sistema d’emmagatzematge i les particularitats d’aquest. Com és el cas dels RAIDs, on podem observar per cada tipus de RAID les següents característiques:
** RAID 0: Per fer 1 operació d’escriptura/lectura d’1 dada només necessitem 1 IOPS.
** RAID 1: Per fer 1 operació d’escriptura necessitem executar 2 IOPS d’escriptura, ja que el RAID 1 funciona com un mirall. Però en el cas d’operacions de lectura només executem 1 IOPS de lectura.
** RAID 5: Per fer 1 operació d’escriptura, necessitem executar 4 IOPS, 2 de lectura i 2 d’escriptura, ja que s'han de comprovar i escriure les dades de paritat. Però en el cas d’operacions de lectura només executem 1 IOPS de lectura.
** RAID 6: Per fer 1 operació d’escriptura, necessitem executar 6 IOPS, 3 de lectura i 3 d’escriptura, ja que s'han de comprovar i escriure les dades de paritat i Reed-Solomon. Però en el cas d’operacions de lectura només executem 1 IOPS de lectura.
** RAID 10: Per fer 1 operació d’escriptura necessitem executar 2 IOPS d’escriptura, ja que el RAID 10 funciona com un mirall. Però en el cas d’operacions de lectura només executem 1 IOPS de lectura.
* L’origen dels IOPS, ja que en el cas de les dades proporcionades pels comercials, normalment es mostra només els IOPS obtinguts amb el mètode més idoni pel dispositiu en qüestió, cosa que pot no mostrar la realitat o el comportament en condicions normals o habituals del dispositiu.

## Utilitat dels IOPS

Una de les possibles utilitats dels IOPS és poder comparar diferents dispositius d’emmagatzematge entre ells, basant-se en el temps que necessiten per fer escriptures i lectures de les dades.

## Referències

* ↑ «Getting The Hang Of IOPS v1.3», 03-08-2012. [Consulta: 30 novembre 2014].