¿Por qué mi volumen SC1 o ST1 de EBS no alcanza el resultado de rendimiento estipulado?

4 minutos de lectura
0

Mi volumen ST1 o SC1 de Amazon Elastic Block Store (Amazon EBS) no alcanza el resultado de rendimiento que se indica en la documentación de AWS.

Breve descripción

Si utiliza volúmenes HDD de Amazon EBS, como SC1 y ST1, revise los siguientes puntos:

  • Estos volúmenes siempre utilizan un token de E/S de 1024 KiB, independientemente del tamaño real de E/S que utilice la carga de trabajo de la instancia. Aunque el tamaño real de E/S de la carga de trabajo de la aplicación se establezca en 16 KiB, el volumen seguirá utilizando el tamaño total de 1024 KiB del token de E/S. De este modo se desperdicia la mayor parte del espacio del token. Para maximizar la eficiencia, llene los 1024 KiB.
  • Cuando el tamaño de E/S de una carga de trabajo secuencial es superior a 32 KiB, Amazon EBS siempre fusiona las E/S en una sola operación de E/S de 1024 KiB. Esta fusión aprovecha todo el tamaño del token.
  • Cuando el tamaño de las E/S es inferior a 32 KiB o la carga de trabajo es aleatoria, Amazon EBS no fusiona las E/S hasta alcanzar los 1024 KiB. Sin embargo, Amazon EBS sigue utilizando los 1024 KiB del tamaño del token. De este modo la mayor parte del espacio dentro del token queda vacío. Como las E/S no se fusionan, la instancia utiliza más IOPS para enviar la misma cantidad de datos al volumen. Esto reduce el balance de ampliación aunque el rendimiento sea inferior a su valor de referencia.

Resolución

Para permitir que sus volúmenes ST1 y SC1 de EBS alcancen el rendimiento estipulado máximo, siga estos pasos:

  • Configure la aplicación para que utilice un tamaño de E/S superior a 32 KiB.
  • Compruebe que la aplicación utilice una carga de trabajo secuencial.

Ejemplo

Utilice esta fórmula para calcular el rendimiento:

Rendimiento = tamaño de E/S * IOPS

Si el tamaño de E/S es inferior a 32 KiB, el volumen alcanza su límite de IOPS y se reduce el rendimiento. Cuando esto ocurre, el volumen nunca alcanza el rendimiento estipulado.

Por ejemplo, supongamos que establece un tamaño de E/S de 16 KiB y envía 3 MiB/s de datos:

3 MiB/s/16 KiB = 192 IOPS

Si establece el tamaño de E/S en 32 KiB con una carga de trabajo secuencial/contigua, Amazon EBS realizará una fusión hasta los 1024 KiB. En este caso, Amazon solo envía 3 IOPS, como se puede observar en el siguiente cálculo:

3 MiB/s/1024 KiB = 3 IOPS

Pero supongamos que utiliza 0,5 TiB (500 GiB) de un volumen ST1. Lo ideal es que este volumen proporcione un resultado de rendimiento básico de 20 MiB/s y pueda ampliarse hasta 125 MiB/s.

Si el volumen se amplía a 125 MiB/s y el tamaño de E/S de la aplicación es de 1024 KiB, las IOPS teóricas máximas equivalen a 125 IOPS.

Rendimiento / Tamaño de E/S = 125 MiB/s / 1024 KiB = 125 IOPS.

Sin embargo, si la aplicación usa un tamaño de E/S de 16 KiB, se utilizarán 192 IOPS para enviar 3 MiB de datos. La aplicación no puede enviar 192 IOPS porque el volumen solo alcanza un máximo teórico de 125 IOPS. En este caso, el volumen reduce las IOPS a 125:

Rendimiento real = 16 KiB\ * 125 = 1,95 MiB/s

Tal y como muestran los cálculos anteriores, las IOPS se limitan a 125 IOPS, por lo que Amazon EBS reduce el rendimiento a 1,95 MiB/s. Esta limitación se produce a pesar de que el rendimiento teórico ampliable del volumen sea de 125 IOPS, dado que la aplicación utilizó un tamaño de E/S de 1024 KiB.

Información relacionada

Características de E/S y monitoreo

Tipos de volúmenes de Amazon EBS

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses