Injeção de latência - 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á.

Injeção de latência

Use a ação de injeção de latência (aws:ebs:volume-io-latency) AWS FIS para simular I/O latência elevada em seus volumes do Amazon EBS para testar como seus aplicativos respondem à degradação do desempenho do armazenamento. Essa ação permite que você especifique o valor de latência a ser injetado, bem como a porcentagem I/O que será afetada no volume de destino. Com AWS FIS, você pode usar modelos de experimento de latência pré-configurados para começar a testar diferentes padrões de I/O latência que podem ser observados durante falhas de armazenamento. Esses modelos foram projetados como um conjunto inicial de cenários que você pode usar para introduzir interrupções nas aplicações e testar a resiliência. Eles não foram projetados para abranger todos os tipos de impacto que suas aplicações podem experimentar no mundo real. Recomendamos adaptá-los para executar vários testes diferentes com base nas necessidades da performance das suas aplicações. É possível personalizar os modelos disponíveis ou criar novos modelos de experimentos para testar os requisitos específicos da sua aplicação.

Modelos de experimento de latência pré-configurados

O Amazon EBS oferece os seguintes modelos de experimento de latência por meio do console do EBS e da biblioteca de cenários do AWS FIS. Use esses modelos diretamente em seus volumes de destino para executar um experimento de injeção de latência.

  • Latência sustentada: simula latência constante. Este experimento utiliza uma ação de injeção de latência e tem uma duração total de 15 minutos. Esse experimento simula latência persistente em 50% da E/S de leitura I/O e 100% da gravação: 500 ms por 15 minutos.

  • Aumento da latência: simula o aumento gradual da latência. Esse experimento utiliza cinco ações de injeção de latência e tem uma duração total de 15 minutos. Esse experimento simulará um aumento gradual na latência em 10% da E/S de leitura I/O e 25% da gravação: 50 ms por 3 minutos, 200 ms por 3 minutos, 700 ms por 3 minutos, 1 segundo por 3 minutos e 15 segundos por 3 minutos.

  • Latência intermitente: simula picos nítidos de latência intermitente com períodos de recuperação intermediários. Esse experimento utiliza três ações de injeção de latência e tem uma duração total de 15 minutos. Esse experimento simulará três picos de latência em 0,1% da E/S de leitura e gravação: pico de 30 segundos que dura 1 minuto, pico de 10 segundos que dura 2 minutos e pico de 20 segundos que dura 2 minutos. Haverá períodos de recuperação de 5 minutos entre cada pico de latência.

  • Diminuição da latência: simula a diminuição gradual da latência. Esse experimento utiliza cinco ações de injeção de latência e tem uma duração total de 15 minutos. Esse experimento simulará uma diminuição gradual na latência em 10% da E/S de leitura I/O e gravação: 20 segundos por 3 minutos, 5 segundos por 3 minutos, 900 ms por 3 minutos, 300 ms por 3 minutos e 40 ms por 3 minutos.

Personalizar cenários predefinidos

Você personaliza os modelos pré-configurados acima ou cria seus próprios novos modelos de experimento usando os seguintes parâmetros personalizáveis.

  • readIOPercentage— Porcentagem de I/O operações de leitura nas quais a latência será injetada. Essa é a porcentagem de todas as I/O operações de leitura no volume que serão afetadas pela ação.

    Intervalo: mín. 0,1%, máx. 100%

  • readIOLatencyMilliseconds— Quantidade de latência injetada nas operações de leitura I/O . Esse é o valor de latência que será observado na porcentagem especificada da leitura I/O durante o experimento.

    Intervalo: mínimo de 1 ms (io2) /10 ms (não io2), máximo de 60 segundos

  • writeIOPercentage— Porcentagem de I/O operações de gravação nas quais a latência será injetada. Essa é a porcentagem de todas as I/O operações de gravação no volume que serão afetadas pela ação.

    Intervalo: mín. 0,1%, máx. 100%

  • writeIOLatencyMilliseconds— Quantidade de latência injetada nas operações de gravação I/O . Esse é o valor de latência que será observado na porcentagem especificada da gravação I/O durante o experimento.

    Intervalo: mínimo de 1 ms (io2) /10 ms (não io2), máximo de 60 segundos

  • duration— Duração pela qual a latência será injetada na porcentagem I/O selecionada.

    Intervalo: mínimo de 1 segundo, máximo de 12 horas

Monitorar a injeção de latência

É possível monitorar o impacto na performance dos volumes das seguintes maneiras:

  • Use métricas de latência média CloudWatch para obter a latência média I/O por minuto. Para obter mais informações, consulte Monitorar seus volumes do EBS usando CloudWatch.

  • Use estatísticas de desempenho detalhadas do EBS disponíveis por meio de NVMe -CLI, CloudWatch agent e Prometheus para obter a latência média por segundo. I/O As métricas detalhadas também fornecem histogramas de I/O latência que você pode usar para analisar a variação da latência em seus volumes. Para obter mais informações, consulte estatísticas NVMe detalhadas de desempenho.

  • Use a Verificações de status de volume do Amazon EBS. Quando você injeta I/O latência, o status do volume muda para o estado. warning

Considerações

Considere o seguinte ao usar a injeção de latência do EBS:

  • A injeção de latência é compatível com todos os tipos de instância baseados em Nitro, exceto: P4d, P5, P5e, Trn2u, G6, G6f, Gr6, Gr6f, M8i, M8i-flex, C8i-flex, R8i, R8i-flex, I8ge, Mac-m4pro, e Mac-m4.

  • Pode haver uma variação de até 5% entre o valor de latência especificado no experimento e a latência resultante observada.

  • Se você conduzir um número muito pequeno de I/O operações, a porcentagem I/O especificada nos parâmetros da ação pode não corresponder à porcentagem real de I/O pessoas afetadas pela ação.

Para executar um experimento de injeção de latência em um volume do Amazon EBS
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Volumes.

  3. Selecione os volumes nos quais executar o experimento e escolha Ações, Teste de resiliência, Latência de volume I/O de injeção.

    O AWS Fault Injection Service console se abre.

  4. Na janela Criar experimento, selecione o tipo de experimento a ser executado: Intermitente, Crescente, Sustentado ou Decrescente.

  5. Para a seleção da função do IAM, escolha Criar uma nova função para criar uma nova função que AWS FIS será usada para conduzir os experimentos em seu nome. Outra opção é escolher Usar um perfil do IAM existente caso você tenha criado um perfil do IAM anteriormente com as permissões necessárias.

  6. A seção Estimativa de preços oferece uma estimativa do custo da execução do experimento. Com AWS FIS, você é cobrado por minuto de execução de uma ação, do início ao fim, com base no número de contas-alvo do seu experimento.

  7. Escolha Start experiment (Iniciar experimento).