Características de E/S de Amazon EBS y monitoreo - Amazon EBS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Características de E/S de Amazon EBS y monitoreo

En la configuración concreta de un volumen, algunas características de E/S controlan el rendimiento de los volúmenes de EBS. Los volúmenes con respaldo de SSD, es decir, los SSD de uso general (gp2 y gp3) y los SSD de IOPS aprovisionadas (io1 e io2), proporcionan un rendimiento uniforme, tanto si la operación de E/S es aleatoria como si es secuencial. Los volúmenes con respaldo de HDD, es decir, los HDD con rendimiento optimizado (st1) y los HDD en frío (sc1), proporcionan un rendimiento óptimo solo cuando las operaciones de E/S son grandes y secuenciales. Para comprender el modo en que los volúmenes SSD y HDD se comportarán en la aplicación, es importante conocer la relación entre la demanda que se hace al volumen, la cantidad de IOPS de que dispone el volumen, el tiempo que tarda una operación de E/S en completarse y los límites de rendimiento del volumen.

IOPS

IOPS es una unidad de medida que representa las operaciones de entrada y salida que se producen por segundo. Las operaciones se miden en KiB y la tecnología de disco subyacente determina la cantidad máxima de datos que un tipo de volumen considera como una operación única de E/S. El tamaño de la E/S se limita a 256 KiB para los volúmenes de SSD y a 1024 KiB para los volúmenes de HDD debido a que los volúmenes de SSD controlan las E/S pequeñas o aleatorias de una manera mucho más eficiente que los volúmenes de HDD.

Cuando las operaciones de E/S pequeñas son secuenciales físicamente, Amazon EBS intenta combinarlas en una única operación de E/S hasta el tamaño máximo. De igual modo, cuando las operaciones de E/S superan el tamaño máximo de E/S, Amazon EBS intenta dividirlas en operaciones de E/S más pequeñas. En la siguiente tabla, se muestran algunos ejemplos.

Tipo de volumen Tamaño máximo de las E/S Operaciones de E/S de su aplicación Cantidad de IOPS Notas
SSD 256 KiB 1 operación de E/S de 1024 KiB 4 (1024 ÷ 256 = 4) Amazon EBS divide la operación de E/S de 1024 KiB en cuatro operaciones más pequeñas de 256 KiB.
8 operaciones secuenciales de E/S de 32 KiB 1 (8 x 32 = 256) Amazon EBS fusiona las ocho operaciones secuenciales de E/S de 32 KiB en una única operación de 256 KiB.
8 operaciones aleatorias de E/S de 32 KiB 8 Amazon EBS considera las operaciones aleatorias de E/S por separado.
HDD 1024 KiB 1 operación de E/S de 1024 KiB 1 La operación de E/S ya es igual al tamaño máximo de E/S. No se fusiona ni se divide.
8 operaciones secuenciales de E/S de 128 KiB 1 (8 x 128 = 1024) Amazon EBS fusiona las ocho operaciones secuenciales de E/S de 128 KiB en una única operación de E/S de 1024 KiB.
8 operaciones aleatorias de E/S de 32 KiB 8 Amazon EBS considera las operaciones aleatorias de E/S por separado.

En consecuencia, cuando se crea un volumen respaldado por SSD que admite 3000 IOPS (tanto al aprovisionar un volumen Provisioned IOPS SSD de 3000 IOPS con al establecer el tamaño de un volumen SSD de uso general en 1,000 GiB) y se vincula a una instancia optimizada para EBS que ofrece suficiente ancho de banda, es posible transferir hasta 3000 operaciones de E/S de datos por segundo, con un rendimiento que viene determinado por el tamaño de E/S.

Longitud de cola del volumen y latencia

La longitud de la cola del volumen es el número de solicitudes de E/S pendientes de un dispositivo. La latencia es el tiempo de cliente de extremo a extremo real de una operación de E/S, dicho de otro modo, el tiempo que trascurre entre el envío de una E/S a EBS y la recepción de un reconocimiento por parte de EBS de que la operación de lectura o escritura de E/S ha finalizado. La longitud de la cola debe calibrarse correctamente con el tamaño de E/S y la latencia para evitar crear cuellos de botella en el sistema operativo invitado o en el enlace de red con EBS.

La longitud de cola óptima varía con cada carga de trabajo, dependiendo de la sensibilidad específica de la aplicación a las operaciones de IOPS y la latencia. Si la carga de trabajo no proporciona suficientes solicitudes de E/S para hacer el uso completo del rendimiento disponible para el volumen de EBS, es posible que el volumen no proporcione la IOPS o el rendimiento que ha aprovisionado.

Las aplicaciones con alta intensidad de transacciones son sensibles al aumento de la latencia de E/S y resultan muy adecuadas para los volúmenes respaldados por SSD. Puede mantener una IOPS elevada y una latencia baja manteniendo la longitud de cola corta y un número elevado de IOPS disponible para el volumen. Dirigir constantemente a un volumen más operaciones de IOPS de las que tiene disponibles puede provocar un aumento de la latencia de E/S.

Las aplicaciones con un rendimiento de alta intensidad son menos sensibles al aumento de la latencia de E/S y resultan muy adecuadas para los volúmenes respaldados por HDD. Puede mantener un rendimiento alto a los volúmenes con respaldo en HDD conservando una longitud de cola elevada cuando se realizan operaciones de E/S grandes y secuenciales.

Límites de rendimiento de los volúmenes y tamaño de E/S

Para los volúmenes con respaldo en SSD, si el tamaño de E/S es muy grande, puede experimentar un número menor de IOPS que lo que ha aprovisionado porque alcanza el límite de rendimiento del volumen. Por ejemplo, un volumen gp2 de menos de 1000 GiB con créditos de ráfaga disponibles tiene un límite de 3000 IOPS y un límite de rendimiento del volumen de 250 MiB/s. Si utiliza un tamaño de E/S de 256 KiB, el volumen alcanza el límite de rendimiento en 1000 IOPS (1000 x 256 KiB = 250 MiB). Para tamaños de E/S más pequeños (como 16 KiB), este mismo volumen puede soportar 3000 IOPS porque el rendimiento se encuentra muy por debajo de 250 MiB/s. (En estos ejemplos, se supone que la E/S del volumen no alcanza los límites de rendimiento de la instancia.) Para obtener más información acerca de los límites de rendimiento de cada tipo de volumen de EBS, consulte Tipos de volúmenes de Amazon EBS.

Con operaciones de E/S más pequeñas, es posible que vea un valor de IOPS mayor que el aprovisionado medido desde el interior de la instancia. Esto sucede cuando el sistema operativo de la instancia combina pequeñas operaciones de E/S con una operación mayor antes de pasarlas a Amazon EBS.

Si la carga de trabajo utiliza E/S secuencial en volúmenes st1 y sc1 respaldados por HDD, es posible que experimente un número de IOPS mayor del esperado si lo mide desde el interior de la instancia. Esto sucede cuando el sistema operativo de la instancia combina E/S secuenciales y las cuenta como unidades de 1024 KiB de tamaño. Si la carga de trabajo usa E/S pequeñas o aleatorias, puede experimentar un rendimiento menor del esperado. Esto es debido a que cada E/S aleatoria, no secuencial se cuenta en el cómputo total de IOPS, lo que puede hacer que se alcance el límite de IOPS del volumen antes de lo esperado.

Con independencia del tipo de volumen de EBS, si no logra el rendimiento o IOPS que espera en la configuración, asegúrese de que no sea el ancho de banda de la instancia EC2 el factor causante. Conviene usar siempre una instancia optimizada para EBS de la generación actual (o una que incluya una conexión de red de 10 Gb-s) para lograr el rendimiento óptimo. Otra causa posible de no experimentar la IOPS esperada es que no dirija suficientes operaciones de E/S a los volúmenes de EBS.

Monitorear las características de E/S mediante CloudWatch

Puede monitorizar estas características de E/S con las métricas de volumen de CloudWatch de cada volumen. Entre las métricas importantes que debe considerar se incluyen las siguientes:

  • VolumeStalledIOCheck

  • BurstBalance

  • VolumeReadBytes | VolumeWriteBytes

  • VolumeReadOps | VolumeWriteOps

  • VolumeQueueLength

VolumeStalledIOCheck supervisa el estado de sus volúmenes de EBS para determinar cuándo están agotados. La métrica es un valor binario que devolverá un estado 0 (superado) o 1 (no superado) en función de si el volumen de EBS puede o no completar las operaciones de E/S. Esta comprobación detecta los problemas subyacentes de la infraestructura de Amazon EBS, como los siguientes:

  • Problemas de hardware o software en los subsistemas de almacenamiento subyacentes a los volúmenes de EBS

  • Problemas de hardware en el host físico que afectan a la accesibilidad de los volúmenes de EBS desde la instancia de EC2

  • Problemas de conectividad entre la instancia y los volúmenes de EBS

Si la métrica VolumeStalledIOCheck no se supera, puede esperar a que AWS resuelva el problema o tomar medidas, como reemplazar los volúmenes afectados o detener y reiniciar la instancia a la que está asociado el volumen. En la mayoría de los casos, cuando se produce un error en esta métrica, EBS diagnosticará y recuperará automáticamente el volumen en cuestión de minutos. Puede utilizar la acción Pausar la E/S en AWS Fault Injection Service para ejecutar experimentos controlados a fin de probar su arquitectura y supervisión en función de esta métrica para mejorar su resistencia ante los errores de almacenamiento.

Puede medir la latencia de E/S del almacenamiento de Amazon EBS mediante VolumeReadOps, VolumeWriteOps, VolumeTotalReadTime y VolumeTotalWriteTime. Puede usar la siguiente fórmula para supervisar la latencia promedio de E/S de su volumen:

Average I/O latency in ms/op = (VolumeTotalReadTime + VolumeTotalWriteTime) / (VolumeReadOps + VolumeWriteOps)

Si la latencia de E/S es superior a la que requiere, compruebe las IOPS dirigidas y asegúrese de que la aplicación no trata de dirigir más IOPS de las que ha aprovisionado. Puede usar la siguiente fórmula para supervisar las IOPS promedio dirigidas en su volumen:

Estimated average IOPS in ops/s = (Sum(VolumeReadOps) + Sum(VolumeWriteOps)) / (Period - Sum(VolumeIdleTime))

Si la aplicación necesita un número de IOPS mayor que el que puede proporcionar el volumen, debería plantearse el uso de uno de los siguientes:

  • Un volumen gp3, io2 o io1 aprovisionado con suficientes IOPS para lograr la latencia requerida

  • Un volumen gp2 mayor que proporcione suficiente rendimiento de IOPS de base de referencia

Los volúmenes st1 y sc1 respaldados por HDD están diseñados para dar mejor resultado con cargas de trabajo que aprovechan el tamaño máximo de 1024 KiB para E/S. Para determinar el tamaño de E/S medio del volumen, divida VolumeWriteBytes entre VolumeWriteOps. El mismo cálculo se aplica a las operaciones de lectura. Si el tamaño de E/S promedio es inferior a 64 KiB, aumentar el tamaño de las operaciones de E/S que se envían a un volumen st1 o sc1 debería servir para mejorar el rendimiento.

nota

Si el tamaño de E/S está en 44 KiB o en un valor próximo, es posible que esté utilizando una instancia o kernel que no admite descriptores indirectos. Cualquier kernel de Linux, versión 3.8 y posteriores, tiene esta compatibilidad, así como todas las instancias de la generación actual.

BurstBalance muestra el balance del bucket de ráfagas para los volúmenes gp2, st1 y sc1 como un porcentaje del saldo total. Cuando el bucket por ráfaga se agota, el E/S del volumen (para los volúmenes gp2) o el rendimiento del volumen (para los volúmenes st1 y sc1) se reducen a la base de referencia. Compruebe el valor BurstBalance para determinar si el volumen se está reduciendo por esta razón. Para ver una lista completa de las métricas de Amazon EBS disponibles, consulte CloudWatch Métricas de Amazon para Amazon EBS y Métricas de Amazon EBS para instancias basadas en Nitro.

Recursos relacionados

Para obtener más información sobre las características de E/S de Amazon EBS, consulte la siguiente presentación de re:Invent Amazon EBS: Designing for Performance.