Quão rápidos são os seus volumes AWS EBS?

Conteúdo

Logotipo da AWS

A velocidade do disco é uma parte importante da medição do desempenho de um servidor. AWS tem muitos tipos diferentes de volumes EBS e usa um modelo de repositório burst, equivalente a instâncias T2, para definir a velocidade geral do seu disco.

A maioria das cargas de trabalho do servidor provavelmente inclui alguma forma de cache de memória, então, se você tiver RAM suficiente, a velocidade do seu disco pode não importar muito; uma vez que um arquivo é lido, pode ficar na memória por um tempo. Mas para cargas de trabalho de gravação intensiva, a velocidade do disco começa a se tornar o fator limitante e pode fazer ou quebrar o desempenho do servidor.

Desempenho de IOPS e SSD explicado

A AWS lista e mede a velocidade SSD por meio de operações de I / O por segundo (IOPS). Em grande parte, isso é apenas uma medida da velocidade de leitura e gravação aleatória de 4K do dispositivo..

SSDs funcionam de maneira diferente em diferentes cargas de trabalho, então, existem algumas alternativas para medir o quão rápido eles são. O primeiro é a velocidade de leitura e gravação sequencial, que mede a rapidez com que lêem um arquivo grande do disco. A velocidade importa, especialmente ao trabalhar com big data, mas este é o cenário ideal e, No mundo real, Muitas vezes, os SSDs precisam extrair dados de vários locais ao mesmo tempo.

RELACIONADO: Como testar a velocidade do disco e RAM do seu servidor Linux

Uma métrica melhor é o desempenho aleatório. Este benchmark lê e grava arquivos em pedaços do tamanho de 4096 bytes em locais aleatórios, daí o nome “4K Aleatório”. Imita com mais precisão a carga do mundo real que o SSD pode enfrentar.

Pontos de referência aleatórios podem variar com base na profundidade da cauda, uma medida de quanto o SSD precisa processar agora. Ao consultar o SSD para um grupo de arquivos, a profundidade da cauda será alta, que acelera o desempenho. Mas o desempenho do benchmark é medido na profundidade da fila 1, que parece ser o que a AWS mede em seus SSDs.

Ponto de ajuste da velocidade do disco

IOPS é uma medida de quantas operações reais estão ocorrendo. A fórmula para encontrar IOPS de MB / Sim, ele é:

IOPS = (MBps / KB por operação) * 1024

E como lemos 4 KB ao mesmo tempo, a fórmula se torna:

IOPS = MBps * 256

O SSD de desktop na imagem acima teria mais do que 13,000 IOPS, o que é muito bom para um SSD NVME de 2 tb.

O modelo de cubo explosivo

A principal coisa que complica os volumes AWS EBS é o desempenho de burst. Isso funciona da mesma maneira como as instâncias T2 funcionam / T3: quando o disco está ocioso, acumula créditos de E / S a uma taxa determinada pelo tamanho do volume.

Esses créditos vão para um “depósito”, que os acumula até um máximo de 5,4 milhões, o suficiente para atingir o desempenho máximo durante 30 minutos. O intervalo começa cheio para permitir a inicialização rápida do aplicativo e da instância.

GP2 Blast Scoop Model

Os créditos esgotam-se para esgotar o desempenho. gp2 tem um desempenho máximo de 3.000 IOPS, então ele só pode consumir 3.000 por segundo.

Os volumes ganham créditos de IO a uma taxa de 3 por GB por segundo. O que significa que se você tiver um volume maior que 1 tb, seu tanque está sempre cheio e você não precisa se preocupar com o desempenho da explosão. Qualquer coisa menos do que isso e será limitado ao desempenho de referência com base no número de créditos que você ganha.

O desempenho do benchmark excede o burst após 1 tb

Se você precisa de um desempenho mais sustentado, pode alugar um volume maior ou usar um volume de IOPS provisionado (io1). Embora sejam mais caros por GB, permitem que você compre IOPS imediatamente. Você pode comprar entre 100 e 64 000 IOPS, a uma taxa de $ 0.065 por IOPS provisionado. Isso só é verdadeiramente lucrativo se você quiser mais do que 3000 IOPS. Para qualquer coisa abaixo disso, efetivamente pague o dobro do preço pelo volume. Como um exemplo, se você precisar de um volume de 3000 IOPS de 64 GB, você pode simplesmente provisionar um volume de 1 tb gp2 volume pela metade do preço. Mas, se você quer a velocidade extra, pode pagar.

Desempenho do disco rígido (st1 e sc1)

Os volumes EBS baseados em disco rígido da AWS também usam um modelo de repositório intermitente, mas os discos rígidos funcionam um pouco diferente dos SSDs, então não é medido em IOPS. Porque um disco rígido usa uma cabeça de disco giratória, as velocidades de leitura e gravação serão corrigidas. Fazer leituras e gravações aleatórias reduzirá significativamente a velocidade (uma das principais desvantagens dos discos rígidos). AWS usa velocidades de leitura sequencial aqui.

Para st1, a velocidade básica aumenta em 40 MiB / s para TB, começando em 20 para o tamanho de volume mínimo de 500 GB.

Desempenho básico encontra explosão em 12 tb

A velocidade de explosão aumenta em 250 MiB / s para TB, até um máximo de 500 MiB / s. Para volumes maiores que 12 tb, pode atingir a velocidade máxima do 100% do tempo. Nada menos, e você será limitado pela explosão do seu saldo de crédito.

Para sc1, a velocidade básica aumenta em 12 MiB / s para TB, começando em 6 para o tamanho de volume mínimo de 500 GB. Isso o torna muito mais lento e nunca alcançará o 100% de sua habilidade de explosão (mas é mais barato).

O desempenho básico é sempre inferior ao desempenho de explosão

A velocidade de burst também é limitada e aumenta em 80 MiB / s para TB, até um máximo de 250 MiB / s. Isso equivale a aproximadamente 8,000 IOPS, mas novamente, esta é provavelmente a velocidade sequencial, e você não verá velocidades tão altas e aleatórias em nenhum disco rígido.

Como encontrar a velocidade do seu disco no mundo real

Você poderia usar uma ferramenta como dd Apesar disto, para medir a velocidade de gravação sequencial, isso não sobrecarrega o disco o suficiente para ser útil e não é indicativo de nenhum caso de uso real.

Para conseguir algo melhor, você deve instalar uma ferramenta de benchmarking de disco chamada fio do gerenciador de pacotes da sua distribuição:

sudo apt-get install fio

Depois de, execute-o com o seguinte comando:

fio --randrepeat = 1 --ioengine = libaio --direct = 1 --gtod_reduce = 1 --name = test --filename = random_read_write.fio --bs = 4k --iodepth = 64 --size = 250M - readwrite = randrw --rwmixread = 80

Isso criará um arquivo de 250 MB e realizará testes aleatórios de leitura e gravação em uma proporção de 80% de leituras e 20% de ações, dando a você uma visão muito mais precisa do desempenho real de sua unidade.

Um teste rápido com um arquivo de 25 MB mostra os benefícios do modelo de burst warehouse da AWS. O volume gp2 pode explodir em alta velocidade por um tempo para lidar com a transferência sem problemas. Com um tamanho tão pequeno, o SSD pode efetivamente exceder o limite de 3000 IOPS, mas só por um segundo.

5000 Leia IOPS, 1300 Escreva IOPS

Um teste mais longo com um arquivo de 250 MB dá uma visão melhor de como o SSD funcionará sob cargas mais altas. Nesta circunstância, o teste leva mais de um segundo, então a velocidade é limitada pela taxa de burst de IOPS, chegando a 2600 IOPS.

2600 Leia IOPS, 655 Escreva IOPS

Desde já, se permitíssemos que este teste fosse executado por mais de 30 minutos, o volume GP2 ficaria sem créditos e desaceleraria para apenas 24 IOPS para um volume de 8 GB. Mas você provavelmente não encontrará cargas que usam o 100% de seu álbum e, se isso acontecer, você sempre pode usar um disco maior com desempenho garantido ou provisionar IOPS diretamente.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.