Por que meu volume SC1 ou ST1 do EBS não atinge o desempenho de throughput nominal?

4 minuto de leitura
0

Meu volume ST1 ou SC1 do Amazon Elastic Block Store (Amazon EBS) não atinge o desempenho de throughput listado na documentação da AWS.

Breve descrição

Se você usa volumes HDD do Amazon EBS, como SC1 e ST1, analise os seguintes pontos:

  • Esses volumes sempre usam um token de E/S de 1024 KiB, independentemente do tamanho real de E/S usado pela workload na instância. Se o tamanho real de E/S da workload do aplicativo for definido como 16 KiB, o volume ainda usa todo o tamanho de 1024 KiB do token de E/S. Isso desperdiça a maior parte do espaço do token. Para maximizar a eficiência, preencha os 1024 KiB inteiros.
  • Quando o tamanho de E/S de uma workload sequencial é maior que 32 KiB, o Amazon EBS sempre mescla as E/S em uma única operação de E/S de 1024 KiB. Essa fusão preenche todo o tamanho do token.
  • Quando o tamanho de E/S é menor que 32 KiB ou se a workload é aleatória, o Amazon EBS não mescla as E/S em 1024 KiB. No entanto, o Amazon EBS ainda usa todo o tamanho do token de 1024 KiB. Isso deixa a maior parte do espaço dentro do token vazia. Como as E/S não são mescladas, a instância usa mais IOPS para enviar a mesma quantidade de dados para o volume. Isso reduz o equilíbrio de expansão, mesmo que o throughput seja menor do que o valor da linha de base.

Resolução

Para permitir que seus volumes ST1 e SC1 do EBS atinjam o throughput nominal máximo, siga estas etapas:

  • Configure seu aplicativo para usar um tamanho de E/S maior que 32 KiB.
  • Verifique se seu aplicativo usa workload sequencial.

Exemplo

Ao calcular o throughput, use a seguinte fórmula:

Throughput = tamanho de E/S * IOPS

Se o tamanho de E/S for menor que 32 KiB, o volume atingirá seu limite de IOPS e irá controlar a utilização do throughput. Quando isso acontece, o volume nunca atinge seu desempenho nominal do throughput.

Por exemplo, suponha que você defina o tamanho de E/S para 16 KiB e envie 3 MiB/s de dados:

3 MiB/s/16KiB = 192 IOPS

Quando você define o tamanho de E/S para 32 KiB com uma workload sequencial/contígua, o Amazon EBS mescla até 1024 KiB. Nesse caso, a Amazon envia apenas 3 IOPS, conforme mostrado no cálculo a seguir:

3 MiB/s/1024 KiB = 3 IOPS

Mas suponha que você use 0,5 TiB (500 GiB) de um volume ST1. Nesse caso, o volume idealmente fornece um desempenho básico de throughput de 20 MiB/s e pode expandir até 125 MiB/s.

Se o volume expandir em 125 MiB/s e o tamanho de E/S do aplicativo for 1024 KiB, o máximo de IOPS teórico será igual a 125 IOPS.

Throughput / tamanho de E/S = 125 MiB/s / 1024 KiB = 125 IOPS.

No entanto, se o aplicativo usar um tamanho de E/S de 16 KiB, o envio de 3 MiB de dados usará 192 IOPS. Como o volume atinge apenas um máximo teórico de 125 IOPS, o aplicativo não pode enviar 192 IOPS. Nesse caso, o volume controla a utilização de IOPS para 125:

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

Conforme mostrado nos cálculos anteriores, o IOPS é limitado a 125 IOPS e o Amazon EBS controla a utilização do throughput em 1,95 MiB/s. Esse controle de utilização ocorre mesmo que o throughput teórico expansível do volume seja de 125 IOPS, já que o aplicativo usou um tamanho de E/S de 1024 KiB.

Informações relacionadas

Características e monitoramento de E/S

Tipos de volume do Amazon EBS

AWS OFICIAL
AWS OFICIALAtualizada há 7 meses