View a markdown version of this page

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 determinam o comportamento de desempenho dos seus volumes do EBS.

  • SSD-backed volumes, SSD de uso geral (gp2egp3) e SSD de IOPS provisionado (io1eio2), oferecem desempenho consistente, independentemente de uma I/O operação ser aleatória ou sequencial.

  • HDD-backed volumes, 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 como os volumes de SSD e HDD funcionarão em seu aplicativo, é importante conhecer a conexão entre a demanda do 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 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 conta como um único I/O. I/O o tamanho é limitado a 256 KiB para volumes SSD e 1.024 KiB para volumes de HDD porque os volumes SSD lidam com volumes pequenos ou aleatórios com I/O muito mais eficiência do que 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 do 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 I/O operações do seu aplicativo Número de IOPS Observações
SSD 256 KiB 1 x 1024 KB de operação I/O 4 (1.024 ÷ 256 = 4) O Amazon EBS divide a operação de 1.024 KiB em quatro I/O 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 as I/O operações aleatórias separadamente.
HDD 1.024 KiB 1 x 1024 KB de operação 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 KB 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 as I/O operações aleatórias separadamente.

Consequentemente, quando você cria um SSD-backed volume com suporte a 3.000 IOPS (provisionando um io1 io2 volume com 3.000 IOPS, dimensionando um gp2 volume em 1.000 GiB ou usando um gp3 volume) e o anexa a uma EBS-optimized instância que pode fornecer largura de banda suficiente, você pode transferir até 3.000 dados por segundo, com a taxa I/Os de transferência determinada pelo tamanho. 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 verdadeiro tempo de uma I/O operação do cliente de ponta a ponta, em outras palavras, o tempo decorrido entre o envio de um I/O para o EBS e o recebimento de 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 I/O tamanho e latência para evitar a criação de gargalos no sistema operacional convidado ou no link de rede para 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, seu volume pode não fornecer o IOPS ou a taxa de transferência que você provisionou.

Transaction-intensive os aplicativos são sensíveis ao aumento da I/O latência e são adequados para SSD-backed volumes. É 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. Conduzir consistentemente mais IOPS para um volume do que o disponível pode causar maior I/O latência. Para obter máxima consistência, um volume deve manter uma profundidade média de fila (arredondada para o número inteiro mais próximo) de uma para cada 1.000 IOPS provisionadas em um minuto. Por exemplo, para um volume provisionado com 3.000 IOPS, a média da profundidade da fila deve ser 3.

Throughput-intensive os aplicativos são menos sensíveis ao aumento da I/O latência e são adequados para HDD-backed volumes. Você pode manter uma alta taxa de transferência de HDD-backed volumes mantendo um alto comprimento de fila ao realizar trabalhos sequenciais grandes. I/O

I/O limites de taxa de transferência de tamanho e volume

Para SSD-backed volumes, 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 burst disponíveis tem um limite de IOPS de 3.000 e um limite de taxa de transferência de volume de 250. MiB/s Se você estiver usando um I/O tamanho de 256 KiB, seu volume atingirá o limite de taxa de transferência em 1000 IOPS (1000 x 256 KiB = 250 MiB). Para I/O tamanhos menores (como 16 KiB), esse mesmo volume pode sustentar 3.000 IOPS porque a taxa de transferência está bem abaixo de 250. MiB/s (Esses exemplos pressupõem que seu volume não I/O esteja 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 IOPS maior do que o provisionado, medido de dentro da sua instância. Isso acontece quando o sistema operacional da instância mescla pequenas I/O operações em uma operação maior antes de passá-las para o Amazon EBS.

Se sua carga de trabalho usar sc1 volumes HDD-backed st1 e entradas sequenciais I/Os , você poderá 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 KiB-sized 1.024 unidades. Se sua carga de trabalho for pequena ou aleatória I/Os, você poderá ter uma taxa de transferência menor do que a esperada. Isso ocorre porque cada número aleatório e não sequencial I/O conta para a contagem total de IOPS, o que 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 tiver a IOPS ou a taxa de transferência esperada em sua configuração, certifique-se de que a largura de banda da sua instância EC2 não seja o fator limitante. Você deve sempre usar uma EBS-optimized instância da geração atual (ou uma que inclua 10 conexões de Gb/s rede) para obter o desempenho ideal. Outra causa possível para não obter 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 parado I/O

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 no fato de o volume do EBS poder ou não concluir I/O as operações.

Se a VolumeStalledIOCheck métrica falhar, você pode esperar AWS até 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 I/O ação Pause in 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

É possível monitorar a latência média das operações de leitura e gravação de um volume do Amazon EBS usando as métricas VolumeAvgReadLatency e VolumeAvgWriteLatency, respectivamente. Você pode usar a ação de Injeção de Latência AWS Fault Injection Service para executar experimentos controlados para testar sua arquitetura e monitoramento com base nessa métrica para melhorar sua resiliência à degradação do desempenho do armazenamento.

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. É possível usar as métricas VolumeAvgIOPS e VolumeAvgThroughput para monitorar a média de IOPS e o throughput direcionados ao seu volume em um minuto e, em seguida, compará-los com as IOPS provisionadas e o throughput do volume. Se o volume não conduzir nenhuma operação durante o minuto, as métricas reportarão um valor de zero (0). Se surtos de IOPS ou throughput elevados ocorrerem por um período menor do que o intervalo de um minuto, o volume experimentará um microssurto, mas as métricas médias de IOPS e de throughput podem indicar que você está gerando uma performance inferior às IOPS provisionadas ou aos limites de throughput do seu volume. Para identificar se seu volume apresenta surtos de performance em um determinado minuto, você pode usar as métricas VolumeIOPSExceededCheck e VolumeThroughputExceededCheck. É possível monitorar essas métricas para saber se seu workload tentou consistentemente gerar IOPS ou throughput maiores do que a performance provisionada do seu volume em um determinado minuto. Se as IOPS geradas em qualquer segundo dentro de um minuto exceder consistentemente a performance de IOPS provisionada do seu volume, a métrica VolumeIOPSExceededCheck retornará 1. Se o throughput gerado em qualquer segundo dentro de um minuto exceder consistentemente a performance de throughput provisionada do seu volume, a métrica VolumeThroughputExceededCheck retornará 1. Se as IOPS e o throughput gerados estiverem dentro da performance provisionada 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

HDD-backed st1e sc1 os volumes são projetados para funcionar melhor 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 volume, divida VolumeWriteBytes porVolumeWriteOps. O mesmo cálculo se aplica a operações de leitura. Se o I/O tamanho médio estiver abaixo de 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 burst bucket para volumes gp2, st1 e 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 intervalo intermitente está esgotado, o volume I/O (para gp2 volumes) ou a taxa de transferência de volume (para st1 e sc1 volumes) é reduzido 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 disponíveis do Amazon EBS, consulte CloudWatch Métricas da Amazon para o Amazon EBS as métricas do Amazon EBS para Nitro-based instâncias.

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

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

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 sua aplicação excedeu os limites de IOPS ou de throughput 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 as IOPS provisionadas ou os limites de throughput para otimizar a performance da sua aplicação. 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 em uma faixa de latência.

Para obter mais informações, consulte Estatísticas detalhadas de performance 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.