La latencia, mide cuánto tiempo le toma a su disco, computadora, Internet y todo lo demás, responder a una acción que realiza (como hacer clic en un enlace, una petición a un archivo guardado en su computadora, etc). Para la mayoría de nosotros, la latencia no afectará nuestra transmisión de video, la escucha de Spotify o la navegación por Instagram. Pero si juegas o usas Internet, la latencia puede tener un gran impacto en tu experiencia en línea, esto mismo se puede trasladar a los sistemas de almacenamiento, lo cual se va a tratar en este artículo.

En el contexto de este artículo, la latencia es una medida del tiempo necesario para que un subsistema o un componente de ese subsistema procese una sola transacción de almacenamiento o solicitud de datos. Es similar al retardo de propagación de una señal a través de un componente discreto y generalmente es una función del hardware. En el caso de los subsistemas de almacenamiento, la latencia se refiere al tiempo que tarda en recibirse una única solicitud de datos y para encontrar los datos correctos y acceder a ellos desde los medios de almacenamiento. En una unidad de disco, la latencia de lectura es el tiempo necesario para que el controlador encuentre los bloques de datos adecuados y coloque las cabezas sobre esos bloques (incluido el tiempo necesario para hacer girar los platos del disco) para comenzar el proceso de transferencia.

En un dispositivo flash, la latencia de lectura incluye el tiempo para navegar a través de las distintas conectividades de red (fibra, iSCSI, SCSI, bus PCIe y ahora bus de memoria). Una vez que se realiza la navegación, la latencia también incluye el tiempo dentro del subsistema flash para encontrar los bloques de datos necesarios y prepararse para transferir datos. Para operaciones de escritura en un dispositivo flash en una condición de «estado estable», la latencia también puede incluir el tiempo consumido por el controlador flash para realizar actividades generales como borrar bloques, copiar y «recolección de basura» en preparación para aceptar nuevos datos. Esta es la razón por la que la latencia de escritura flash suele ser mayor que la latencia de lectura.

¿Qué son las IOPS, el ancho de banda y las transacciones?

El rendimiento se representa con mayor frecuencia en los productos de almacenamiento mediante dos estadísticas, rendimiento e IOPS. El rendimiento es una medida de la cantidad de datos que se pueden enviar a través de un punto común en la ruta de datos en un tiempo determinado. Un término similar es «ancho de banda», que representa la capacidad de soportar un nivel determinado de rendimiento. Ambos se expresan normalmente como bits por segundo en la terminología de redes y como bytes por segundo en la terminología de almacenamiento.

IOPS u operaciones de entrada / salida por segundo, es una medida del número total de transacciones de almacenamiento que se procesan a través de un sistema o un solo puerto de almacenamiento cada segundo.

Las «transacciones» son solicitudes de datos realizadas por servidores y el proceso de encontrar y acceder a los bloques de datos de los sistemas de almacenamiento para cumplir con esas solicitudes. Las IOPS se utilizan normalmente para describir el rendimiento en casos de uso que involucran objetos de datos más pequeños, como metadatos sobre transacciones financieras o registros de tráfico web. Para objetos de datos más grandes, como imágenes o archivos de video que deben transmitirse a los usuarios o aplicaciones en el menor tiempo posible, el rendimiento es la métrica más utilizada.

¿En qué se diferencian las IOPS?

IOPS para un subsistema determinado, como un dispositivo flash, es un agregado de las transacciones que procesa en un segundo determinado. Por tanto, la latencia puede afectar directamente a las IOPS. Sin embargo, centrarse únicamente en IOPS como métrica de rendimiento puede ser engañoso. Si bien describe la cantidad de transacciones de datos que un sistema puede mantener por segundo, no especifica la cantidad de datos que entrega cada transacción, que puede variar ampliamente con el tamaño del bloque.

Para mantener el rendimiento de IOPS, los sistemas de almacenamiento necesitan que haya suficientes solicitudes pendientes de datos disponibles (en una cola) para que las latencias de algunas solicitudes individuales no afecten negativamente al rendimiento general de IOPS del sistema. Cuando la profundidad de la cola es baja, la latencia se convierte en un determinante más importante del rendimiento del almacenamiento y, en los sistemas de almacenamiento basados ​​en flash, la profundidad de la cola baja (o nula) es algo común.

Si bien se requieren colas de transacciones adecuadas para lograr el rendimiento de SSD, las grandes profundidades de cola pueden enmascarar la latencia a corto plazo. Esencialmente, el sistema puede procesar una gran cantidad de transacciones por segundo desde la cola (IOPS alto) pero aun así tomar un tiempo relativamente largo para completar esas transacciones (latencia larga). Por lo tanto, en el corto plazo, las IOPS pueden verse bien, aunque la capacidad del sistema para mejorar el rendimiento a largo plazo sea deficiente. Por estas razones, la latencia suele ser una métrica más importante que IOPS para medir el rendimiento del sistema SSD.

Conclusión

El rendimiento de los dispositivos de almacenamiento puede ser difícil de comparar con precisión, ya que la forma en que se miden puede variar según la aplicación o el entorno. En algunos casos de uso, mover grandes cantidades de datos rápidamente (alto rendimiento) constituye un buen rendimiento; para otros, es compatible con una gran cantidad de procesos relativamente cortos (alto IOPS). Para confundir aún más el problema, factores como el tamaño del bloque, la profundidad de la cola y el grado de paralelismo pueden aumentar el rendimiento y las IOPS en un entorno sin beneficiar el rendimiento general de la aplicación.

Una métrica de rendimiento más consistente es la latencia. Como factor principal tanto en los cálculos de IOPS como de rendimiento, su impacto en el rendimiento del almacenamiento es fundamental. Esto significa que la reducción de la latencia mejorará universalmente el rendimiento, lo que convierte a la latencia en la primera métrica a tener en cuenta al evaluar el rendimiento del almacenamiento.