I/O Características e monitoramento do Amazon EBS - Amazon EBS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

I/O Características e monitoramento do Amazon EBS

Em uma determinada configuração de volume, certas I/O características orientam o comportamento de desempenho de seus volumes do EBS.

  • Volumes baseados em SSD, SSD de uso geral (gp2egp3) e SSD de IOPS provisionada (io1eio2) oferecem desempenho consistente, independentemente de uma operação ser aleatória ou sequencial. I/O

  • Volumes baseados em HDD, HDD com taxa de transferência otimizada (st1) e HDD frio (sc1), oferecem desempenho ideal somente quando I/O as operações são grandes e sequenciais.

Para entender o desempenho dos volumes SSD e HDD em seu aplicativo, é importante conhecer a conexão entre a demanda no volume, a quantidade de IOPS disponível, o tempo necessário para a conclusão de uma I/O operação e os limites de taxa de transferência do volume.

IOPS

O IOPS é uma unidade de medida que representa input/output as operações por segundo. As operações são medidas em KiB, e a tecnologia de drive subjacente determina a quantidade máxima de dados que um tipo de volume considera único com I/O. I/O size is capped at 256 KiB for SSD volumes and 1,024 KiB for HDD volumes because SSD volumes handle small or random I/O muito mais eficiência do que os volumes de HDD.

Quando pequenas I/O operações são fisicamente sequenciais, o Amazon EBS tenta mesclá-las em uma única I/O operação até o tamanho máximo. I/O Da mesma forma, quando I/O as operações são maiores que o I/O tamanho máximo, o Amazon EBS tenta dividi-las em I/O operações menores. A tabela a seguir mostra alguns exemplos.

Tipo de volume I/O Tamanho máximo Operações de E/S da sua aplicação Número de IOPS Observações
SSD 256 KiB Operação de 1 x 1024 KiB I/O 4 (1.024 ÷ 256 = 4) O Amazon EBS divide a operação de 1.024 I/O KiB em quatro operações menores de 256 KiB.
8 operações sequenciais de 32 KiB I/O 1 (8 x 32 = 256) O Amazon EBS mescla as oito I/O operações sequenciais de 32 KiB em uma única operação de 256 KiB.
8 I/O operações aleatórias de 32 KiB 8 O Amazon EBS conta I/O as operações aleatórias separadamente.
HDD 1.024 KiB Operação de 1 x 1024 KiB I/O 1 A I/O operação já é igual ao I/O tamanho máximo. Ela não é mesclada ou dividida.
8 operações sequenciais de 128 KiB I/O 1 (8 x 128 = 1.024) O Amazon EBS mescla as oito I/O operações sequenciais de 128 KiB em uma única operação de 1.024 KiB. I/O
8 I/O operações aleatórias de 32 KiB 8 O Amazon EBS conta I/O as operações aleatórias separadamente.

Consequentemente, quando você cria um volume baseado em SSD com suporte a 3.000 IOPS (provisionando um io2 volume io1 ou com 3.000 IOPS, dimensionando um volume gp2 em 1.000 GiB ou usando um gp3 volume) e o anexa a uma instância otimizada para EBS que pode fornecer largura de banda suficiente, você pode transferir até 3.000 dados por segundo, com a taxa de transferência determinada pelo tamanho. I/Os I/O

Comprimento e latência da fila de volume

O tamanho da fila de volume é o número de I/O solicitações pendentes para um dispositivo. A latência é o tempo real de uma I/O operação para o end-to-end cliente, em outras palavras, o tempo decorrido entre enviar uma I/O para o EBS e receber uma confirmação do EBS de que a leitura ou gravação foi concluída. I/O O comprimento da fila deve ser calibrado corretamente com o I/O tamanho e a latência para evitar a criação de gargalos no sistema operacional convidado ou no link de rede com o EBS.

O tamanho ideal da fila varia para cada workload, dependendo da sensibilidade de sua aplicação específica em relação à IOPS e à latência. Se sua carga de trabalho não estiver entregando I/O solicitações suficientes para usar totalmente o desempenho disponível para seu volume do EBS, talvez seu volume não forneça o IOPS ou a taxa de transferência que você provisionou.

Os aplicativos com uso intenso de transações são sensíveis ao aumento da I/O latência e são adequados para volumes baseados em SSD. É possível manter a IOPS alta e, ao mesmo tempo, a latência baixa mantendo uma fila de comprimento pequeno e um alto número de IOPS disponíveis para o volume. Direcionar consistentemente mais IOPS para um volume do que ele tem disponível pode causar maior I/O latência.

Os aplicativos que consomem muita taxa de transferência são menos sensíveis ao aumento da I/O latência e são adequados para volumes baseados em HDD. É possível manter alta throughput para volumes baseados em HDD mantendo uma fila de comprimento maior ao executar E/S grande e sequencial.

Limites de throughput de tamanho e volume de E/S

Para volumes baseados em SSD, se seu I/O tamanho for muito grande, você poderá ter um número menor de IOPS do que o provisionado porque está atingindo o limite de taxa de transferência do volume. Por exemplo, um gp2 volume abaixo de 1.000 GiB com créditos de pico disponíveis tem um limite de IOPS de 3.000 e um limite de taxa de transferência de volume de 250 não MiB/s. If you are using a 256 KiB I/O size, your volume reaches its throughput limit at 1000 IOPS (1000 x 256 KiB = 250 MiB). For smaller I/O sizes (such as 16 KiB), this same volume can sustain 3,000 IOPS because the throughput is well below 250 MiB/s. (These examples assume that your volume's I/O está atingindo os limites de taxa de transferência da instância.) Para obter mais informações sobre os limites de throughput para cada tipo de volume do EBS, consulte Tipos de volume do Amazon EBS.

Para I/O operações menores, você pode ver um valor de higher-than-provisioned IOPS medido de dentro da sua instância. Isso acontece quando o sistema operacional da instância funde operações pequenas de E/S em uma operação maior antes de passá-las ao Amazon EBS.

Se sua carga de trabalho usa sequenciais I/Os em HDD st1 e sc1 volumes, você pode ter um número de IOPS maior do que o esperado, conforme medido de dentro da sua instância. Isso acontece quando o sistema operacional da instância mescla sequencialmente I/Os e as conta em unidades do tamanho de 1.024 KiB. Se sua carga de trabalho for pequena ou aleatória I/Os, you may experience a lower throughput than you expect. This is because we count each random, non-sequential I/O em relação à contagem total de IOPS, isso pode fazer com que você atinja o limite de IOPS do volume mais cedo do que o esperado.

Seja qual for o tipo de volume do EBS, se você não estiver experimentando a IOPS ou a taxa de transferência esperada em sua configuração, certifique-se de que a largura de banda da sua EC2 instância não seja o fator limitante. Você deve sempre usar uma instância otimizada para EBS da geração atual (ou uma que inclua 10 conexões de Gb/s rede) para obter um desempenho ideal. Outra causa possível para não experimentar o IOPS esperado é que você não está direcionando o suficiente I/O para os volumes do EBS.

Monitore I/O as características usando CloudWatch

Você pode monitorar essas I/O características com as métricas de volume de cada CloudWatch volume.

Monitor para E/S paralisada

VolumeStalledIOCheck monitora o status dos volumes do EBS para determinar quando eles estão danificados. A métrica é um valor binário que retornará um status 0 (aprovado) ou 1 (reprovado) com base na capacidade ou não do volume do EBS concluir I/O as operações.

Se a VolumeStalledIOCheck métrica falhar, você pode esperar AWS para resolver o problema ou tomar medidas, como substituir o volume afetado ou interromper e reiniciar a instância à qual o volume está conectado. Na maioria dos casos, quando essa métrica falha, o EBS diagnostica e recupera automaticamente o volume em alguns minutos. Você pode usar a ação Pausar I/O AWS Fault Injection Service para executar experimentos controlados para testar sua arquitetura e monitoramento com base nessa métrica para melhorar sua resiliência a falhas de armazenamento.

Monitore a I/O latência de um volume

Você pode monitorar a latência média das operações de leitura e gravação de um volume do Amazon EBS usando as VolumeAvgWriteLatency métricas VolumeAvgReadLatency e, respectivamente.

Se sua I/O latência for maior do que a necessária, certifique-se de que seu aplicativo não esteja tentando gerar mais IOPS ou taxa de transferência do que você provisionou para seu volume. Use as fórmulas a seguir para calcular a média de IOPS e a taxa de transferência gerada para seu volume em um período específico e, em seguida, compare isso com a IOPS e a taxa de transferência provisionadas do volume.

Sum(VolumeReadOps) + Sum(VolumeWriteOps) Estimated average IOPS in ops/s = ---------------------------------------- Period - Sum(VolumeIdleTime)
(Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / 1024 Estimated average throughput in KiB/s = ----------------------------------------------------- Period - Sum(VolumeIdleTime)

Você também pode monitorar as VolumeThroughputExceededCheck métricas VolumeIOPSExceededCheck e para determinar se sua carga de trabalho tentou consistentemente gerar IOPS ou uma taxa de transferência maior do que o desempenho provisionado do seu volume em um determinado minuto. Se o IOPS orientado exceder consistentemente o desempenho de IOPS provisionado do seu volume, a métrica retornará. VolumeIOPSExceededCheck 1 Se a taxa de transferência controlada exceder consistentemente o desempenho da taxa de transferência provisionada do seu volume, a métrica retornará. VolumeThroughputExceededCheck 1 Se o IOPS e a taxa de transferência orientados estiverem dentro do desempenho provisionado do seu volume, as métricas retornarão. 0

Se a aplicação exigir um número de IOPS maior do que seu volume pode fornecer, será necessário considerar usar um dos seguintes:

  • Um volume gp3, io2 ou io1 que seja provisionado com IOPS suficientes para atingir a latência necessária

  • Um volume gp2 maior que forneça performance de IOPS de base suficiente

Os sc1 volumes st1 e suportados por HDD foram projetados para ter o melhor desempenho com cargas de trabalho que aproveitam o tamanho máximo de 1.024 KiB. I/O Para determinar o I/O tamanho médio do seu volume, divida VolumeWriteBytes porVolumeWriteOps. O mesmo cálculo se aplica a operações de leitura. Se o I/O tamanho médio for inferior a 64 KiB, aumentar o tamanho das I/O operações enviadas para um sc1 volume st1 or deve melhorar o desempenho.

Monitore o equilíbrio do balde de ruptura paragp2,st1, e volumes sc1

BurstBalance exibe o saldo do bucket de intermitência para os volumes gp2, st1 e sc1 como um porcentual do saldo restante. Quando seu burst bucket se esgota, o volume I/O (para gp2 volumes) ou a taxa de transferência do volume (para st1 e sc1 volumes) são reduzidos para a linha de base. Verifique o valor BurstBalance para determinar se seu volume está sendo limitado por esse motivo. Para obter uma lista completa das métricas do Amazon EBS disponíveis, consulte CloudWatch Métricas da Amazon para Amazon EBS e Métricas do Amazon EBS para instâncias baseadas Nitro.

Monitore estatísticas de I/O desempenho em tempo real

Você pode acessar estatísticas de desempenho detalhadas em tempo real dos volumes do Amazon EBS que estão vinculados às instâncias da Amazon EC2 baseadas em Nitro.

Você pode combinar essas estatísticas para obter a latência média e o IOPS ou para verificar se I/O as operações estão sendo concluídas. Você também pode visualizar o tempo total em que seu aplicativo excedeu os limites de IOPS ou de taxa de transferência provisionados do volume do EBS ou da instância anexada. Ao monitorar os aumentos dessas estatísticas ao longo do tempo, você pode identificar se precisa aumentar o IOPS provisionado ou os limites de taxa de transferência para otimizar o desempenho do seu aplicativo. As estatísticas detalhadas de desempenho também incluem histogramas para I/O operações de leitura e gravação, que fornecem uma distribuição de sua I/O latência ao acompanhar o número total de I/O operações concluídas dentro de uma faixa de latência.

Para obter mais informações, consulte Estatísticas detalhadas de desempenho do Amazon EBS.

Recursos relacionados

Para obter mais informações sobre as I/O características do Amazon EBS, consulte a seguinte apresentação do re:Invent: Amazon EBS: Designing for Performance.