Performance de volumes 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á.

Performance de volumes do Amazon EBS

Vários fatores, como as características de E/S e a configuração das instâncias e volumes, podem afetar a performance dos volumes do Amazon EBS. Ao seguir as orientações em nossas páginas de detalhes do produto do Amazon EBS e do Amazon EC2, você muito provavelmente conseguirá atingir uma boa performance. No entanto, há alguns casos em que talvez seja necessário fazer alguns ajustes para atingir a performance máxima. Recomendamos que você ajuste a performance com informações de sua workload real, além da comparação, para determinar sua configuração ideal. Após você entender os conceitos básicos de utilização dos volumes do EBS, é uma boa ideia examinar a performance de E/S necessária e as opções para melhorar a performance do Amazon EBS a fim de atender a esses requisitos.

As atualizações da AWS para a performance de tipos de volume do EBS podem não ter efeito imediato em seus volumes existentes. Para ver a performance completa em um volume anterior, primeiro é possível precisar realizar uma ação ModifyVolume nele. Para obter mais informações, consulte Modificar um volume do EBS usando Volumes Elásticos do Amazon EBS.

Dicas de performance do Amazon EBS

Essas dicas representam as melhores práticas para obter a performance ideal de seus volumes do EBS em uma variedade de cenários de usuário.

Usar instâncias otimizadas para EBS

Em instâncias sem suporte para a throughput otimizada para EBS, o tráfego de rede poderá competir com o tráfego entre sua instância e seus volumes do EBS. Em instâncias otimizadas para EBS, os dois tipos de tráfego são mantidos separados. Algumas configurações de instâncias otimizadas para EBS incorrem um custo extra (como C3, R3 e M3), enquanto outras são sempre otimizadas para EBS sem custo extra (como M4, C4, C5 e D2). Para obter mais informações, consulte Otimizar a parformance do Amazon EBS.

Noções básicas de como a performance é calculada

Quando você mede a performance dos volumes do EBS, é importante compreender as unidades de medida envolvidas e como a performance é calculada. Para obter mais informações, consulte Características e monitoramento de E/S do Amazon EBS.

Noções básicas da workload

Há uma relação entre a performance máxima dos volumes do EBS, o tamanho e o número de operações de E/S e o tempo necessário para que cada ação seja concluída. Cada um desses fatores (performance, E/S e latência) afeta os outros, e aplicações diferentes são mais sensíveis em relação a um fator do que outros. Para obter mais informações, consulte Comparar volumes do EBS.

Esteja ciente da penalidade de performance ao inicializar volumes de snapshots

Há um aumento significativo da latência quando você acessa cada bloco de dados pela primeira vez em um novo volume do EBS que foi criado de um snapshot. É possível evitar essa ocorrência de performance usando uma das seguintes opções:

  • Acessar cada bloco antes de colocar o volume em produção. Esse processo é chamado inicialização (conhecido anteriormente como pré-aquecimento). Para obter mais informações, consulte Inicializar volumes de Amazon EBS.

  • Habilite as restauração rápida em um snapshot para garantir que os volumes do EBS criados de um snapshot sejam totalmente inicializados na criação e entreguem instantaneamente toda a sua performance provisionada. Para obter mais informações, consulte Restauração rápida de snapshots do Amazon EBS.

Fatores que podem reduzir a performance do HDD

Quando você cria um snapshot de um volume HDD otimizado para throughput (st1) ou HDD a frio (sc1), a performance poderá cair até o valor básico do volume enquanto o snapshot estiver em andamento. Esse comportamento é específico desses tipos de volumes. Outros fatores que podem limitar a performance incluem a orientação de uma throughput maior do que a instância pode oferecer suporte, a penalidade de performance encontrada ao inicializar volumes criados de um snapshot e as quantidades excessivas de pequenas operações de E/S aleatórias no volume. Para obter mais informações sobre como calcular a throughput para volumes de HDD, consulte Tipos de volume do Amazon EBS.

A performance também pode ser afetada se sua aplicação não estiver enviando solicitações de E/S suficientes. Isso pode ser monitorado verificando o comprimento da fila do volume e o tamanho da E/S. O comprimento da fila é o número de solicitações pendentes de E/S de sua aplicação para seu volume. Para obter máxima consistência, os volumes baseados em HDD devem manter um comprimento de fila (arredondado para o número inteiro mais próximo) de 4 ou mais ao executar E/S sequencial de 1 MiB. Para obter mais informações sobre como garantir a performance consistente de seus volumes, consulte Características e monitoramento de E/S do Amazon EBS

Aumentar a leitura antecipada para workloads com muitas operações de leitura e alta throughput em st1 e sc1 (somente instâncias do Linux)

Algumas workloads têm muita leitura e acessam o dispositivo de blocos pelo cache da página do sistema operacional (por exemplo, de um sistema de arquivos). Nesse caso, para alcançar a throughput máxima, recomendamos que você defina a configuração de leitura antecipada como 1 MiB. Essa é uma configuração de dispositivo por bloco que somente deve ser aplicada aos volumes de HDD.

Para examinar o valor atual de leitura antecipada para os dispositivos de blocos, use o seguinte comando:

[ec2-user ~]$ sudo blockdev --report /dev/<device>

As informações do dispositivo de blocos são retornadas neste formato:

RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 4096 8587820544 /dev/<device>

O dispositivo mostrado relata um valor de leitura antecipada de 256 (o padrão). Multiplique esse número pelo tamanho do setor (512 bytes) para obter o tamanho de buffer de leitura antecipada, que nesse caso é 128 KiB. Para configurar o valor de buffer de 1 MiB, use o seguinte comando:

[ec2-user ~]$ sudo blockdev --setra 2048 /dev/<device>

Verifique se a configuração de leitura antecipada agora exibe 2.048 executando o primeiro comando novamente.

Use essa configuração somente quando sua workload consistir em grandes E/S sequenciais. Se consistir principalmente em pequenas E/S aleatórias, essa configuração acabará reduzindo a performance. Em geral, se sua workload consiste principalmente em operações de E/S pequenas ou aleatórias, é necessário avaliar a possibilidade de usar um volume SSD de uso geral (gp2 e gp3) em vez de um volume st1 ou sc1.

Use um kernel do Linux moderno (somente instâncias do Linux)

Use um kernel do Linux moderno com suporte para descritores indiretos. Qualquer kernel do Linux versão 3.8 e posterior tem esse suporte, bem como qualquer instância do EC2 da geração atual. Se o tamanho médio de E/S for igual ou próximo a 44 KiB, será possível usar uma instância ou um kernel sem suporte para descritores indiretos. Para obter informações sobre como derivar o tamanho médio de E/S de métricas do Amazon CloudWatch, consulte Características e monitoramento de E/S do Amazon EBS.

Para alcançar a throughput máxima em volumes st1 ou sc1, recomendamos aplicar um valor de 256 ao parâmetro xen_blkfront.max (para versões de kernel do Linux abaixo de 4.6) ou o parâmetro xen_blkfront.max_indirect_segments (para a versão de kernel do Linux 4.6 e acima). O parâmetro apropriado pode ser definido na linha de comando de inicialização do sistema operacional.

Por exemplo, em uma AMI do Amazon Linux com um kernel mais antigo, é possível adicioná-lo ao final da linha de kernel na configuração de GRUB encontrada em /boot/grub/menu.lst:

kernel /boot/vmlinuz-4.4.5-15.26.amzn1.x86_64 root=LABEL=/ console=ttyS0 xen_blkfront.max=256

Para um kernel mais recente, o comando será semelhante ao seguinte:

kernel /boot/vmlinuz-4.9.20-11.31.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 xen_blkfront.max_indirect_segments=256

Reinicialize sua instância para que essa configuração seja implementada.

Para obter mais informações, consulte Configurar o GRUB para AMIs paravirtuais. Outras distribuições do Linux, especialmente aquelas que não usam o carregador de inicialização de GRUB, podem exigir uma abordagem diferente para ajustar os parâmetros de kernel.

Para obter mais informações sobre as características de E/S do EBS, consulte a apresentação re:Invent Amazon EBS: Como projetar visando a performance neste tópico.

Usar o RAID 0 para maximizar a utilização de recursos de instância

Alguns tipos de instância podem gerar throughput de E/S maior do que o que é possível provisionar para um único volume do EBS. É possível adicionar vários volumes juntos em uma configuração de RAID 0 para usar a largura de banda disponível para essas instâncias. Para obter mais informações, consulte Configuração do Amazon EBS e RAID.

Acompanhar a performance usando o Amazon CloudWatch

A Amazon Web Services fornece métricas de performance para o Amazon EBS que é possível analisar e visualizar com o Amazon CloudWatch, e as verificações de status que é possível usar para monitorar a integridade de seus volumes. Para obter mais informações, consulte Monitorar volumes do Amazon EBS.