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á.
Características e monitoramento de E/S do Amazon EBS
Em uma determinada configuração de volume, certas características de E/S controlam a performance dos volumes do EBS.
-
Volumes baseados em SSD, SSD de uso geral (
gp2
egp3
) e SSD de IOPS provisionada (io1
eio2
) oferecem desempenho consistente, independentemente de uma operação de E/S ser aleatória ou sequencial. -
Volumes baseados em HDD, HDD com taxa de transferência otimizada (
st1
) e HDD frio (sc1
), oferecem desempenho ideal somente quando as operações de E/S são grandes e sequenciais.
Para entender como os volumes de SSD e HDD serão executados em sua aplicação, é importante saber sobre as conexões entre a demanda no volume, a quantidade de IOPS disponível para ele, o tempo necessário para que uma operação de E/S seja concluída e os limites de throughput do volume.
Tópicos
IOPS
As IOPS são uma unidade de medida que representa input/output operations per second. The operations are measured in KiB, and the underlying drive technology determines the maximum amount of data that a volume type counts as a single 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 eficientemente do que os volumes de HDD.
Quando operações de E/S pequenas são fisicamente sequenciais, o Amazon EBS tenta mesclá-las em uma única operação de E/S até o tamanho máximo de E/S. Da mesma maneira, quando operações de E/S são maiores do que o tamanho máximo de E/S, o Amazon EBS tenta dividi-las em operações de E/S menores. A tabela a seguir mostra alguns exemplos.
Tipo de volume | Tamanho máximo de E/S | Operações de E/S da sua aplicação | Número de IOPS | Observações |
---|---|---|---|---|
SSD | 256 KiB | 1 x operação de E/S de 1024 KiB | 4 (1.024 ÷ 256 = 4) | O Amazon EBS divide a operação de E/S de 1.024 KiB em quatro operações menores de 256 KiB. |
8 x operações de E/S sequenciais de 32 KiB | 1 (8 x 32 = 256) | O Amazon EBS mescla as oito operações sequenciais de E/S de 32 KiB em uma única operação de 256 KiB. | ||
8 operações de E/S aleatórias de 32 KiB | 8 | O Amazon EBS conta as operações de E/S aleatórias separadamente. | ||
HDD | 1.024 KiB | 1 x operação de E/S de 1024 KiB | 1 | A operação de E/S já é igual ao tamanho máximo de E/S. Ela não é mesclada ou dividida. |
8 x operações de E/S sequenciais de 128 KiB | 1 (8 x 128 = 1.024) | O Amazon EBS mescla as oito operações sequenciais de E/S de 128 KiB em uma única operação de E/S de 1024 KiB. | ||
8 operações de E/S aleatórias de 32 KiB | 8 | O Amazon EBS conta as operações de E/S aleatórias separadamente. |
Portanto, quando você cria um volume baseado em SSD compatível com 3.000 IOPS (seja provisionando um volume io1
ou io2
com 3.000 IOPS ou dimensionando um volume gp2
em 1.000 GiB, ou usando um volume gp3
), e anexa-o a uma instância otimizada para EBS que pode fornecer largura de banda suficiente, é possível transferir até 3.000 E/S de dados por segundo, com throughput determinado pelo tamanho da E/S.
Comprimento e latência da fila de volume
A fila de volume é o número de solicitações de E/S pendentes para um dispositivo. A latência é o tempo real do end-to-end cliente de uma operação de E/S, em outras palavras, o tempo decorrido entre o envio de uma E/S para o EBS e o recebimento de uma confirmação do EBS de que a leitura ou gravação de E/S foi concluída. O comprimento da fila deve ser adequadamente calibrado com o tamanho e a latência de E/S para evitar criar gargalos no sistema operacional convidado ou no link de rede para 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 workload não estiver fornecendo solicitações de E/S suficientes para usar integralmente a performance disponível para seu volume do EBS, o volume pode não fornecer a IOPS ou a throughput que você provisionou.
As aplicações com transações intensivas são sensíveis ao aumento de latência de E/S e são adequadas 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. Se você gerar consistentemente mais IOPS para um volume do que ele dispõe, poderá causar o aumento da latência de E/S.
As aplicações com throughput intensiva são menos sensíveis ao aumento da latência de E/S e são bem adequadas 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 o tamanho de E/S for muito grande, será possível ter um número menor de IOPS do que provisionou, porque você está chegando ao limite de throughput 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 operações de E/S 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 workload usar E/S sequenciais em volumes st1
e sc1
baseados em HDD, será possível ter um número de IOPS superior ao esperado conforme medido dentro de sua instância. Isso acontece quando o sistema operacional da instância funde operações de E/S sequenciais e as conta em unidades de 1.024 KiB. Se sua workload usar operações de E/S pequenas ou aleatórias, será possível ter uma throughput menor do que o esperado. Isso porque nós contamos cada E/S aleatória, não sequencial, para a contagem total de IOPS, que podem levá-lo a atingir o limite de volume de IOPS 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 Gb/s network connectivity) for optimal performance. Another possible cause for not experiencing the expected IOPS is that you are not driving enough I/O volumes do EBS).
Monitore as características de E/S usando CloudWatch
Você pode monitorar essas características de E/S 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) dependendo do volume do EBS poder ou não realizar as operações de E/S.
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 latência de E/S 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 a latência de E/S 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
ouio1
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 volumes st1
e sc1
baseados em HDD são projetados para ter performance melhor com workloads que aproveitam o tamanho de E/S máximo de 1.024 KiB. Para determinar o tamanho médio de E/S do seu volume, divida VolumeWriteBytes
porVolumeWriteOps
. O mesmo cálculo se aplica a operações de leitura. Se o tamanho de E/S médio ficar abaixo de 64 KiB, aumentando o tamanho de operações de E/S enviadas para um volume st1
ou sc1
o volume deve melhorar a performance.
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 bucket de intermitência é esgotado, a E/S de volume (para volumes gp2
) ou a throughput de volume (para volumes st1
e sc1
) são limitadas à 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 desempenho de E/S 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 as operações de E/S 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 operações de E/S de leitura e gravação, que fornecem uma distribuição de sua latência de E/S ao acompanhar o número total de operações de E/S 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 características de E/S do Amazon EBS, consulte a seguinte apresentação re:Invent: Amazon EBS: Como projetar visando a performance