Entender IOPS vs. Velocidad de transferencia

Las operaciones de entrada/salida por segundo (IOPS) y la velocidad de transferencia de los datos son dos características de rendimiento populares de cualquier sistema de almacenamiento. En los primeros días de la tecnología informática, cuando las transferencias de datos se limitaban a pequeñas consultas de bases de datos, IOPS era la principal métrica que podía proporcionar a los administradores de sistemas información general sobre el rendimiento de un sistema de almacenamiento.

En los días modernos, con el aumento de los datos masivos, la transmisión de vídeo en línea, el procesamiento distribuido de datos y la transferencia de enormes volúmenes de datos a través de Internet, el rendimiento de datos está ganando relevancia. Las operaciones de uso intensivo de datos asociadas a estas innovaciones tecnológicas requieren un mejor rendimiento de almacenamiento y red. Esto no solo aplica a términos de IOPS, sino de velocidad de transferencia.

En este artículo, vamos a arrojar luz sobre la relación entre IOPS y la velocidad de transferencia. También hablaremos sobre cómo los especialistas de DevOps pueden usar ambas métricas para evaluar el rendimiento del sistema de almacenamiento. Adicionalmente, discutiremos cómo medir las IOPS y la velocidad de transferencia y los factores adicionales que necesitas para obtener una visión completa del rendimiento del sistema de almacenamiento.

¿Qué es IOPS?

La métrica IOPS muestra cuántas operaciones de lectura y/o escritura puede realizar un dispositivo de almacenamiento por segundo. Una sola operación se realiza en una unidad de disco duro (HDD) que normalmente tiene 512B o 4KB bloques. La unidad de estado sólido (SSD) moderna expone la memoria de almacenamiento en páginas unidas en bloques que pueden alcanzar un tamaño de 512KB.

La métrica IOPS en sí no dice nada sobre la cantidad de datos que una unidad puede procesar. Esta cantidad depende tanto del número de IOPS como del tamaño del bloque (la cantidad máxima de bits/bytes que se pueden asignar a una sola operación de E/S). Por ejemplo, dado el mismo valor de IOPS, la unidad con el mayor tamaño de bloque puede procesar más datos (leer o escribir).

Además, las IOPS pueden variar dependiendo de si se accede a los datos de forma secuencial o aleatoria. Para las HDD en particular, las IOPS suelen ser más altas para las escrituras secuenciales porque el cabezal de disco puede acceder fácilmente a bloques contingentes. Por otro lado, las lecturas y escrituras aleatorias requieren que el cabezal de disco se mueva para encontrar la ubicación necesaria. El valor de las IOPS también puede ser diferente para las operaciones de lectura y escritura.

Por estas razones, las IOPS se pueden dividir en cuatro categorías:

  • IOPS de lecturas aleatorias
  • IOPS de escrituras aleatorias
  • IOPS de lecturas secuenciales
  • IOPS de escrituras secuenciales

¿Qué es la velocidad de transferencia?

La velocidad de transferencia —también llamada tasa de transferencia de datos— mide la cantidad de datos transferidos hacia y desde el dispositivo de almacenamiento. Normalmente, la velocidad de transferencia se mide en MB/s. La velocidad de transferencia está estrechamente relacionada con las IOPS y el tamaño de bloque. Dadas las mismas IOPS, el tamaño de bloque puede marcar una gran diferencia en términos de velocidad de transferencia. En particular, los tamaños de bloque más pequeños resultan en una menor velocidad de transferencia porque cada E/S lee o escribe datos en bloques no divisibles.

De manera similar a las IOPS, la velocidad de transferencia de datos también puede depender del tipo de E/S: aleatoria o secuencial. La velocidad de transferencia de datos está cerca del ancho de banda máximo sostenido para E/S secuenciales. La velocidad de transferencia de datos de una E/S aleatoria es significativamente menor que el de una E/S secuencial para HDD, pero es comparable en las SSD modernas.

¿Por qué las IOPS?

El rendimiento de las aplicaciones con un uso intensivo de datos —incluidas las bases de datos, los almacenes de datos y los sistemas de procesamiento multimedia— se ve directamente afectado por el número de operaciones de entrada/salida que puede ejecutar un sistema de almacenamiento. Por lo tanto, los medios de almacenamiento que elijas deben depender de los requisitos de rendimiento de estas aplicaciones. Las IOPS altas —por ejemplo, 100.000 para SSD modernas— pueden ser un buen indicador de que un sistema de almacenamiento cumplirá con los requisitos.

Además, DevOps y los operadores de infraestructura pueden implementar un sistema de almacenamiento mixto que combina medios de almacenamiento con diferentes parámetros de IOPS. Por ejemplo, las aplicaciones que usan almacenamiento para redundancia —tales como almacenar índices “fríos” (no escribibles)— pueden usar HDD con parámetros de IOPS promedios. Los discos duros con IOPS promedios pueden ser bastante eficientes para las aplicaciones con muchas operaciones de lectura. Por el contrario, las aplicaciones que realizan E/S de acceso aleatorio de alta frecuencia serán más eficientes en SSD que tienen un rendimiento consistente para los datos de acceso aleatorio.

Combinar dispositivos de almacenamiento con diferentes perfiles de IOPS puede ayudar a optimizar los gastos de almacenamiento de tu empresa y hacer que DevOps sea más flexible en el aprovisionamiento de diferentes medios de almacenamiento para las aplicaciones.

Limitaciones de las IOPS

Si bien las IOPS se pueden utilizar como una métrica de rendimiento de almacenamiento general, dicen más sobre el potencial de un sistema de almacenamiento que de su rendimiento real. De forma aislada, la métrica de IOPS revela la cantidad máxima de operaciones de E/S que puede realizar una unidad de almacenamiento determinada. Sin embargo, dice nada sobre la carga de trabajo de datos que un dispositivo de almacenamiento puede procesar. Esto se debe a que las IOPS no tienen en cuenta parámetros como el tamaño del bloque y el tiempo de respuesta. Las mismas IOPS pueden dar como resultado un rendimiento de almacenamiento diferente, dependiendo del tamaño del bloque.

Además, las IOPS “predeterminadas” no indican el rendimiento de aplicaciones con perfiles de E/S mixtos. Debes probar las IOPS en un entorno de producción real para evaluar las necesidades reales de las aplicaciones con un uso intensivo de datos.

¿Por qué la velocidad de transferencia?

A diferencia de las IOPS, la velocidad de transferencia proporciona una evaluación concreta del rendimiento de almacenamiento porque te indica la cantidad de datos que se pueden procesar. Puedes utilizar esta métrica para concluir si una unidad de almacenamiento determinada cumple con los requisitos de tu aplicación.

La velocidad de transferencia depende de las IOPS y el tamaño del bloque, así como del tipo de E/S (aleatoria o secuencial). En los patrones de acceso aleatorio, los datos se leen o escriben desde varias ubicaciones del disco. Aquí, el tiempo medio de búsqueda juega un papel importante en el rendimiento del sistema de almacenamiento. En términos generales, una E/S aleatoria está menos optimizada en el almacenamiento en disco duro y es más eficiente en SSD modernas. En estas, la búsqueda aleatoria depende del controlador interno del dispositivo y la velocidad de la interfaz de memoria.

En una E/S secuencial, se trata del ancho de banda máximo sostenido medido en MB/s. Durante una operación de E/S secuencial, la unidad funciona en bloques de almacenamiento contingentes. Esto significa que la velocidad de transferencia total sólo está limitada por las IOPS.

Limitaciones de la velocidad de transferencia

La velocidad de transferencia es más útil para evaluar el rendimiento de los sistemas de almacenamiento para operaciones secuenciales grandes que para E/S aleatorias. En el primer caso, está perfectamente alineada con la métrica de IOPS y se puede describir como el ancho de banda máximo sostenido.

En una E/S aleatoria que normalmente implica pequeños fragmentos de datos, la latencia y la longitud de la cola hacen que el rendimiento se desvíe sustancialmente del valor de velocidad de transferencia “predeterminada”. Enviar solicitudes de E/S aleatorias puede provocar una latencia alta. Por lo tanto, generalmente se acuerda que las operaciones con archivos grandes y flujos de datos son más eficientes con una velocidad de transferencia secuencial. En estas circunstancias, conocer la velocidad de transferencia “predeterminada” dice poco sobre el rendimiento real del almacenamiento.

Comparación de las IOPS y la velocidad de transferencia

Métrica Objetivo Significado Complejidad de la medición Ventajas Limitaciones Uso recomendado
IOPS Mide E/S por segundo Indica cuántas operaciones puede realizar una unidad de disco por segundo Difícil de medir debido a los diferentes perfiles de E/S y tamaños de bloque Buena medida del rendimiento de almacenamiento potencial No tiene en cuenta el tamaño del bloque y la combinación de perfiles de E/S Evaluación básica del rendimiento de almacenamiento potencial en un escenario ideal
Velocidad de transferencia Mide la cantidad de datos leídos/escritos por segundo Indica la cantidad de datos que se pueden procesar por segundo Se puede medir fácilmente para las operaciones secuenciales
Se requieren más pruebas para E/S aleatorias
Buena medida de las operaciones secuenciales con grandes archivos y fragmentos de datos No es igual al ancho de banda máximo sostenido para E/S aleatorias
No tiene en cuenta la longitud de la cola ni la latencia
Estimación de los requisitos de las aplicaciones con un uso intensivo de datos (especialmente multimedia y datos masivos)

Medir las IOPS

Puedes medir las IOPS con herramientas de prueba de código abierto, como Vdbench, que funcionan simulando cargas de trabajo de E/S en los dispositivos de almacenamiento de destino. Sin embargo, estas herramientas suelen ser criticadas por promediar las IOPS. Esto limita su aplicabilidad para escenarios de aplicación reales.

En términos generales, es difícil medir las IOPS porque las aplicaciones del mundo real combinan diferentes perfiles de E/S. Para obtener una medida más precisa de las IOPS, se recomienda evaluar el rendimiento del almacenamiento en función de las métricas de la aplicación —tales como la velocidad de las consultas relacionadas con el almacenamiento— en lugar del número exacto de operaciones.

Medir la velocidad de transferencia

Teniendo en cuenta las IOPS y el tamaño del bloque, puedes calcular la velocidad de transferencia global de almacenamiento para escrituras secuenciales de la siguiente manera:

Throughput = IOPS X block_size 

Pongamos un ejemplo. Si las IOPS son de 3.000 y el tamaño del bloque es de 512 KB, la velocidad de transferencia de la unidad es:

3000 * 512KB = 1,535 Mb 

Este valor se puede considerar como un ancho de banda máximo sostenido. Esto se debe a que los bloques son contingentes en la E/S secuencial. En caso de una E/S aleatoria, la velocidad de transferencia también dependerá del tiempo medio de búsqueda y la latencia del disco.

La velocidad de transferencia también puede variar dependiendo del tamaño de los datos de la aplicación. El sistema operativo y el dispositivo de almacenamiento normalmente combinarán los fragmentos de datos más pequeños para rellenar todo el bloque o los dividirán si son más grandes que el tamaño del bloque. La medición de la velocidad de transferencia será más precisa para los datos de aplicación que coincidan con el tamaño de un bloque.

Was this article helpful?
Supervise su entorno Linux

Verifique el estado y la disponibilidad de sus servidores Linux para obtener un rendimiento óptimo con la herramienta de monitoreo de Linux de Site24x7.

Write For Us

Write for Site24x7 is a special writing program that supports writers who create content for Site24x7 "Learn" portal. Get paid for your writing.

Write For Us

Write for Site24x7 is a special writing program that supports writers who create content for Site24x7 “Learn” portal. Get paid for your writing.

Apply Now
Write For Us