Inicio / Hardware / ¿Qué son las IOPS? ¿Nos tienen que importar? Parte I

¿Qué son las IOPS? ¿Nos tienen que importar? Parte I

En estas últimas semanas, me he visto obligado a explicar en repetidas ocasiones el término IOPS, y las fórmulas a seguir para poder calcular esta unidad de benchmark que nos permite medir el rendimiento del almacenamiento; por lo que he decidido publicarlo y así poder enviar o remitir el enlace para quién lo considere interesante.

El término IOPS proviene del inglés: “Input/Output Per Second”, lo que en castellano traduciríamos como “Entrada/Salida Por Segundo” y que podríamos llegar a definir a groso modo como el número total de operaciones de prueba de lectura y escritura en las unidades de almacenamiento que realiza nuestro sistema.

Lógicamente da igual el tipo de sistema operativo del que hablemos o del tipo de almacenamiento que utilicemos, ya que siempre y cuando queramos obtener una buena posición o unos valores competitivos en comparativas benchmark, deberemos valorar la correcta configuración para obtener unas buenas IOPS.

Conceptos:

  1. Total IOPS: Número total de operaciones de lectura y escritura.
  2. Write IOPS: Número total de operaciones de escritura.
  3. Read IOPS: Número total de operaciones de lectura.
  4. Random Read IOPS: Número medio de lecturas aleatorias.
  5. Random Write IOPS: Número medio de escrituras aleatorias.
  6. Sequential Read IOPS: Número medio de lecturas secuenciales y que normalmente tienen un valor superior a las Random Read IOPS.
  7. Sequential Write IOPS:  Número medio de escrituras secuencias y que normalmente tienen un valor superior a las Random Write IOPS.
  8. Fronted IOs: Número total de operaciones de lectura y escritura generadas por una aplicación y enviadas a disco.
  9. Backend IOs: Número total de operaciones de lectura y escritura que la controladora RAID envía hacia los discos duros.

Factores clave para el rendimiento de IOPS de un disco:

  1. Velocidad de rotación: Se mide en RPM’s, por lo que cuanto mayor sea el valor de RPM’s mayor será el valor de IOPS
  2. Latencia media: El tiempo de acceso a un sector del disco para su lectura / escritura.
  3. Tiempo medio de búsqueda: El valor en milisegundos que tarda el disco en posicionarse sobre la pista que está leyendo / escribiendo.
Valores estándar de IOPS (deberemos verificar estos valores según el fabricante):
RPM’s IOPS
SSD 6000
15000 170 -> 180
10000 125
7200 75
5400 50

Penalización según el tipo de RAID

Las operaciones de lectura en discos duros que forman parte de un RAID, siempre introducen una penalización de “1”, mientras que las operaciones de escritura varían según el tipo de RAID, como muestro en la siguiente tabla:

RAID PENALIZACIÓN ESCRITURA PENALIZACIÓN LECTURA
0 0 1
1+0 2 1
5 4 1
6 6 1

Explicare los dos casos típicos de RAID:

En un RAID 1 el valor de penalización de escritura es “2” ya que los datos se escriben dos veces, una vez en cada disco.

En un RAID 5 el valor de penalización de escritura es “4” ya que este tipo de RAID realiza las siguientes operaciones:

  1. Realiza una lectura de los datos existentes.
  2. La paridad asignada realiza una vez más la tarea de lectura.
  3. Se escriben los datos nuevos.
  4. La paridad realiza una vez más la tarea de escritura.

Otros valores que tendremos que tener presentes:

  1. Stripe Size asignado en Kb.
  2. Número de discos que componen el RAID.
  3. Porcentaje de lectura y escritura de nuestro sistema o aplicación.
  4. Average I/O size.
  5. Write cache hit ratio
  6. Número de puertos FC disponibles en el servidor.
  7. Average I/O service time.
  8. FC port queue depth.
  9. LUN queue depth.

Alguna fórmulas:

¿Cuántos discos necesitamos? = ((Total IOPS lectura + (Total IOPS escritura * Penalización del RAID)) / IOPS según las RPM’s del disco

 

Ejemplos:

Un cliente nos solicita tener 1000 Frontend IOPS con un porcentaje de lectura del 70% y escritura del 30% y nos solicita dispones de una configuración en RAID 5 formada por discos de 15000 RPM’s.

Read IOPS: 1000 * 70% = 700 

Write IOPS: 1000 * 30% = 300  * 4 = 1200 

Total IOPS: 1900

Discos necesarios: 1900 / 170 = 11,17 (Recomendaremos 12 discos)

Llegados a este punto podríamos decir que seremos unos consultores de almacenamiento perfectos, el problema es que esto no se queda aquí; ya que en el ejemplo anterior ha sido el cliente quien nos ha solicitado unas IOPS en aplicación de 1000, pero pongámonos en un caso más común, que es el de que el cliente no sepa cuantas IOPS necesita y debamos calcularlas nosotros, pero…. estando ya limitados por un almacenamiento que ya posee con 12 discos de 15000 RPM’s en RAID 6 por ejemplo.

Servicio: Exchange

Usuarios: 5000

IOPs por usuario: 0,35

IOPS por disco = (5000 * 0,35) / 10 = 175  (hemos descartado los dos discos de paridad por el nivel de RAID)

Analizamos el caso y nos encontramos que unos discos de 15000 RPM’s pueden ofrecernos individualmente unas IOPS de  entre 170 y 180, por lo que el almacenamiento cumpliría las expectativas de nuestro cliente… ¿Necesitando 175 IOPS por disco  recomendarías esta configuración?

Mi opinión, es que nada entrega nunca los valores exactos que nos dicen, por lo que a mí me parece muy justo y estar demasiado cerca del límite o sobrepasarlo.

Vamos a decirle al cliente que debe adquirir una ampliación más de 12 discos más:

IOPS por disco = (5000 * 0,35) / 20 = 87,5 (hemos descartado los cuatro discos de paridad)

Con este valor,  tenemos seguro que lo vamos a poder cumplir, ya que nuestros discos llegan a entregar entre 170 y 180 IOPs.

 

Continuará…

 

Sobre Bosco López

/dev/null

Te puede interesar también

HP V1910 Web Interface

Como Actualizar Firmware HP V1910-24G (JE006A)

Las características principales de este Switch: Puertos: 24 RJ-45 auto-negotiating 10/100/1000 4 SFP 1000 Mbps …

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *