← Storage: capacidade, desempenho e recuperação
12 / 12 · 60 MIN

Percentis, limites e margem de capacidade

Combina distribuições, identifica a camada limitante e confronta projeções de capacidade com prazo e incerteza operacional.

Agregação exige a distribuição e as contagens

O modelo sintético cria mil amostras de um milissegundo e dez de cem milissegundos. As p95 dos grupos são um e cem. A média desses dois valores é 50,5, mas a p95 conjunta é um milissegundo pela regra nearest rank: a posição 960 está entre as primeiras mil amostras. Mesmo ponderar percentis não reconstrói a distribuição necessária. Para agregar, conserva amostras ou histogramas compatíveis com contagens, indicando aproximações e fronteiras dos buckets. Para a média global, usa soma das durações sobre contagem total; neste modelo resulta 200/101 milissegundos. Um percentil global baixo também não elimina o problema do grupo lento. Reporta segmentos relevantes e volume, para que uma população grande e rápida não esconda o impacto num fluxo crítico menor.

Procurar a camada que limita a carga

Outro modelo usa pedidos constantes de 64 KiB. O volume fictício permite 3000 IOPS e 200 MiB/s. O host permite 120 MiB/s agregados, dos quais outros consumidores usam 40. Sob estas hipóteses restam 80 MiB/s, equivalentes a 1280 operações por segundo de 64 KiB. Esse teto é inferior aos limites individuais do volume. Aumentar apenas IOPS do volume não remove a restrição agregada. O exemplo não representa especificações comerciais de uma instância ou tipo EBS. Na investigação real, confirma tamanho e mistura de operações, limites por camada, carga concorrente e janela. A aplicação pode juntar ou dividir pedidos antes de estes chegarem ao dispositivo. Usa contadores compatíveis e testa a intervenção escolhida com critérios de serviço, incluindo latência e erros, além da taxa média.

Relacionar fila, taxa e latência sem misturar métricas

Num sistema estável e numa população comparável, o modelo relaciona número médio de pedidos em curso, taxa média de conclusões e tempo médio dentro da mesma fronteira. O exemplo usa oito pedidos médios e duas mil conclusões por segundo, dando quatro milissegundos médios. Não é uma estimativa de p99 nem a definição automática de tempo de serviço físico. Se a fila vier do dispositivo e a taxa contar chamadas da aplicação, cache e agregação podem tornar as populações diferentes. Uma janela que atravessa reset de contadores também precisa de tratamento. Antes de calcular, regista origem, unidade, intervalo e semântica de cada campo. Valores com mais casas decimais não corrigem incompatibilidade de âmbito. O runner não mede uma fila real; executa apenas a relação aritmética sob hipóteses explícitas.

Ligar capacidade ao prazo de intervenção

O modelo de capacidade tem 180 GiB livres, um burst planeado de 40, reserva de 20 e crescimento constante de 30 por dia. Restam quatro dias até atingir a reserva. Se a expansão também demora quatro dias, a margem adicional é zero. Uma aprovação tardia ou crescimento superior ao previsto pode comprometer a reserva. Define gatilhos, proprietário e alternativa autorizada, em vez de tratar a projeção como certeza. Num desenho thin, acompanha ainda dados e metadata do pool; espaço lógico no filesystem não responde a todas as restrições. A oficina abaixo reúne os quatro modelos e as medições locais. A sua duração pedagógica de quarenta minutos não é um prazo de recuperação nem um SLA. A aceitação de produção exige workload, plataforma, contrato e responsáveis próprios, ainda não ensaiados aqui.

GUIÃO DE 40 MINUTOS
0–8: Guarda o código completo da aula anterior como run.py numa pasta local autorizada. Usa Python 3.13; a referência executada foi 3.13.1 em Darwin 27.0.0 arm64. O ensaio escreve 24 MiB lógicos em seis ficheiros temporários e faz chamadas fsync locais.
python3 run.py --output ./storage-measurement-evidence.json
8–20: Confirma seis ensaios e 43 verificações. Compara bytes, operações, fsyncCalls e fronteiras de tempo. Verifica a relação entre logicalOpsPerSecond, blockBytes e MiBPerSecond. Inspeciona operationNs e finalSyncOutsideOperationNs. Não exijas tempos iguais ou uma classificação fixa de velocidade.
20–30: Resolve os quatro modelos: p95 conjunta de 1 ms; limite de 1280 operações/s; quatro dias até à reserva sem margem além do prazo; quatro milissegundos médios no modelo de fila. Explica as hipóteses e distingue médias de percentis.
30–40: Escreve critérios para um ensaio representativo: carga, contrato, baseline, janela, erros, cauda, concorrência, reservas e autoridade de aceitação. Identifica cache, ordem fixa e amostra curta como limites. Confirma a remoção da área temporária. A oficina ainda não foi realizada com participantes.
NA PRÁTICA

Douro quer aumentar IOPS do volume, mas o host já está limitado por throughput agregado. Ria tem quatro dias de espaço útil e uma expansão que demora os mesmos quatro dias.

Armadilhas comuns

Média de percentis como percentil global; fila de dispositivo com taxa de aplicação; limite teórico como taxa garantida; prazo de execução contado como margem adicional.

Tópicos relacionados: Capacidade e crescimento · Migração, FinOps e RUN

Leva esta ideia contigo

A decisão depende da distribuição e da camada certa, além do prazo e das hipóteses. Mantém explícita a diferença entre modelo, medição e aceitação.

Criar conta

Referência: Original I/O timing and planning fixtures · DR Storage 2026-09; selected Linux and AWS storage behavior