Características de E/S y monitoreo - Amazon Elastic Compute Cloud

Características de E/S 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 respaldados por SSD, es decir, SSD de uso general (gp2) y SSD de IOPS provisionadas (io1 y io2), proporcionan un rendimiento uniforme, tanto si la operación de E/S es aleatoria como secuencial. Los volúmenes respaldados por HDD, es decir, HDD con velocidad optimizada (st1) y Cold HDD (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 E/S se limita a 256 KiB para los volúmenes SSD y a 1024 KiB para los volúmenes HDD, ya que los volúmenes SSD controlan las E/S pequeñas o aleatorias de una manera mucho más eficiente que los volúmenes HDD.

Cuando las operaciones de E/S pequeñas están contiguas físicamente, Amazon EBS intenta combinarlas en una operación E/S única hasta el tamaño máximo. Por ejemplo, con los volúmenes SSD, una única operación de I/O de 1024 KiB cuenta como 4 operaciones (1024÷256=4), mientras que 8 operaciones de I/O contigua a 32 KiB cuenta como una operación (8×32=256). Sin embargo, 8 operaciones de E/S aleatorias no contiguas a 32 KiB cada una cuenta como 8 operaciones. Cada operación de E/S por debajo de 32 KiB cuenta como una operación.

De igual manera, para los volúmenes con respaldo en HDD, tanto una única operación de E/S de 1024 KiB como ocho operaciones secuenciales de 128 KiB cuentan como una operación. Sin embargo, ocho operaciones de E/S aleatorias de 128 KiB cuentan como ocho operaciones.

En consecuencia, cuando se crea un volumen respaldado por SSD que admite 3000 IOPS (bien aprovisionando un volumen io1 o io2 de 3000 IOPS o bien estableciendo el tamaño de un volumen gp2 en 1000 GiB) y se asocia 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 io1, io2 y gp2 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 st1 y sc1 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 inferior a 1000 GiB con créditos de ráfaga disponibles tiene un límite de 3000 IOPS y un límite de rendimiento de 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. Para obtener más información, consulte Instancias optimizadas para Amazon EBS. 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:

  • BurstBalance

  • VolumeReadBytes

  • VolumeWriteBytes

  • VolumeReadOps

  • VolumeWriteOps

  • VolumeQueueLength

BurstBalance muestra el saldo del bucket por ráfaga 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.

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.

Si la latencia de E/S es superior de la que requiere, use VolumeQueueLength para asegurarse de que la aplicación no trata de dirigir más IOPS de lo que ha aprovisionado. Si la aplicación precisa un número de IOPS mayor de lo que puede proporcionar el volumen, debería plantearse el uso de un volumen gp2 de mayor tamaño con un nivel de rendimiento básico superior o un volumen io1 o io2 con más IOPS provisionadas para lograr latencias más rápidas.

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: Diseño en pos del rendimiento sobre este tema.