Estado estacionário e latência de cauda: o fim dos benchmarks de marketing em storage

      Dr. Elena Kovic 11 min de leitura
      Estado estacionário e latência de cauda: o fim dos benchmarks de marketing em storage

      Esqueça os números de caixa. Descubra por que o estado estacionário (Steady State) e a latência de cauda (p99) são as únicas métricas que importam para engenharia de dados real.

      Compartilhar:

      Você comprou um SSD NVMe Gen5 que prometia 14.000 MB/s e 1,5 milhão de IOPS na caixa. Instalou no servidor, rodou um CrystalDiskMark e os números bateram. Vitória? Não. Duas semanas depois, seu banco de dados PostgreSQL começa a engasgar, máquinas virtuais sofrem timeouts inexplicáveis e o ZFS reporta latências de escrita absurdas. O disco não está quebrado. Você apenas foi vítima da métrica mais enganosa da indústria de armazenamento: a performance de pico em estado "Fresh Out of Box" (FOB).

      A realidade de um datacenter ou de um homelab sério não vive nos primeiros 5 minutos de vida de um SSD. Ela vive no estado estacionário (steady state), onde a física do NAND Flash cobra seu preço. Se você projeta sua infraestrutura baseada em números de marketing, está construindo um castelo de cartas sobre um controlador sobrecarregado.

      Resumo em 30 segundos

      • O mito do FOB: A performance que você vê na caixa do produto reflete um drive vazio e novo. Em uso real, após encher a capacidade, a velocidade pode cair para 10% do prometido devido ao Garbage Collection.
      • A tirania da média: Latência média é inútil para validação de QoS. O que trava aplicações são os "picos" de latência (latência de cauda ou tail latency) escondidos nos percentis 99.99 (p99.99).
      • Metodologia SNIA: Para saber a verdade, é obrigatório seguir a especificação SNIA PTS: limpar, pré-condicionar (encher o disco) e só medir quando a performance estabilizar no pior cenário.

      Gráfico ilustrando a queda dramática de performance (IOPS) desde o estado novo (FOB) até o estado estacionário, onde o Garbage Collection atua continuamente. Figura: Gráfico ilustrando a queda dramática de performance (IOPS) desde o estado novo (FOB) até o estado estacionário, onde o Garbage Collection atua continuamente.

      A física do NAND flash e o custo oculto da limpeza

      Para entender por que seu SSD fica lento, precisamos descer ao nível do silício. Diferente de um disco magnético (HDD) que pode simplesmente sobrescrever um setor, a memória NAND Flash tem uma limitação arquitetural crítica: ela pode ler e escrever em páginas (geralmente 4KB a 16KB), mas só pode apagar em blocos (que contêm centenas de páginas).

      Quando você tira o SSD da caixa, todos os blocos estão "apagados" e prontos para receber dados. O controlador escreve na velocidade máxima da interface PCIe. O problema começa quando o disco enche e você precisa modificar um arquivo.

      O ciclo de pesadelo do Garbage Collection

      O controlador não pode sobrescrever a página antiga. Ele precisa:

      1. Ler o bloco inteiro para a memória cache (DRAM ou SRAM).

      2. Modificar a página desejada na memória.

      3. Apagar o bloco físico inteiro no NAND (uma operação de alta voltagem e lenta).

      4. Reescrever o bloco inteiro de volta.

      Esse processo é chamado de Read-Modify-Write. Para mitigar isso, os SSDs modernos usam Garbage Collection (GC) em segundo plano. O GC procura blocos com dados inválidos (arquivos deletados), move as páginas válidas restantes para outro lugar e apaga o bloco original para liberar espaço.

      💡 Dica Pro: Em SSDs de consumo (QLC/TLC sem DRAM), quando o cache SLC acaba e o disco está cheio, o controlador é forçado a fazer GC durante a escrita. O resultado? A latência de escrita salta de 50 microssegundos para 500 milissegundos. Isso é o que derruba sua aplicação.

      Estado estacionário: onde a verdade reside

      O Estado Estacionário (Steady State) ocorre quando a taxa de escritas novas do host compete diretamente com as operações de background do drive (GC e Wear Leveling). É o equilíbrio termodinâmico do SSD.

      Em um ambiente Enterprise ou em um pool ZFS com muita movimentação de dados, o drive passará 99% da sua vida útil neste estado. Testar um drive vazio é como testar a velocidade máxima de um carro em queda livre: impressionante, mas irrelevante para quem precisa dirigir na estrada.

      Tabela Comparativa: FOB vs. Estado Estacionário

      Característica Fresh Out of Box (FOB) Estado Estacionário (Steady State)
      Condição do Drive 100% dos blocos apagados/livres. Todos os blocos escritos pelo menos 1x.
      Atividade do Controlador Apenas roteamento de dados. Roteamento + GC + Wear Leveling intensivo.
      Performance de Escrita Limitada pela interface (SATA/NVMe). Limitada pela velocidade nativa do NAND e eficiência do firmware.
      Latência Baixa e consistente. Variável, com picos altos (Jitter).
      Relevância Marketing e uso leve (Desktop). Servidores, SAN, ZFS, Bancos de Dados.

      Representação esquemática da estrutura de blocos e páginas na memória NAND, ilustrando o processo de movimentação de dados válidos durante o Garbage Collection. Figura: Representação esquemática da estrutura de blocos e páginas na memória NAND, ilustrando o processo de movimentação de dados válidos durante o Garbage Collection.

      A falácia da latência média e o perigo da cauda

      Se eu colocar uma mão no congelador e outra no fogo, na média, minha temperatura está ótima. Em storage, a média é igualmente mentirosa.

      Imagine um servidor de banco de dados processando 10.000 transações por segundo. Se o SSD tem uma latência média de 0,1ms, parece excelente. Mas se a cada 1000 requisições, uma leva 200ms (devido a uma pausa para apagar um bloco NAND), a "média" sobe pouco, talvez para 0,3ms.

      No entanto, para a aplicação, aquela requisição de 200ms travou uma thread. Se isso acontece frequentemente, as threads se acumulam, a fila de espera cresce e o sistema entra em colapso.

      Percentis: A única métrica que importa

      Para validar QoS (Qualidade de Serviço), ignoramos a média e olhamos para a Latência de Cauda:

      • p99 (Percentil 99): O tempo máximo que as 99% requisições mais rápidas levaram. Ignora o 1% pior.

      • p99.99 (Percentil 99.99): O "santo graal" da estabilidade. Em um milhão de IOs, mostra como os 100 piores se comportaram.

      Se o seu p99.99 é alto, seu storage é imprevisível. Para bancos de dados, consistência é preferível à velocidade bruta. É melhor um drive que entrega 50k IOPS com latência cravada em 2ms, do que um que entrega 200k IOPS oscilando entre 0,1ms e 500ms.

      Histograma de distribuição de latência demonstrando a Figura: Histograma de distribuição de latência demonstrando a "cauda longa". A concentração de dados está na baixa latência, mas os eventos raros de alta latência (p99.99) são destacados como críticos.

      Metodologia SNIA PTS: Como testar corretamente

      A Storage Networking Industry Association (SNIA) criou a especificação PTS (Performance Test Specification) para padronizar como medimos performance, eliminando variáveis de marketing. Se você vai fazer benchmark do seu novo array All-Flash ou do seu NVMe para cache L2ARC, siga este roteiro.

      1. Purge (Limpeza)

      O drive deve voltar ao estado inicial lógico.

      • Comando: nvme format ou blkdiscard. Isso garante que o mapeamento lógico (FTL) seja resetado.

      2. Pré-condicionamento (O passo crucial)

      Aqui separamos os amadores dos profissionais. Antes de medir qualquer coisa, você deve escrever no disco inteiro sequencialmente duas vezes (2x a capacidade do usuário) para invalidar todas as células. Em seguida, execute a carga de trabalho alvo (ex: 4K Random Write) em loop até que a performance se estabilize.

      ⚠️ Perigo: Rodar um teste de 1 minuto não serve. O pré-condicionamento para atingir o estado estacionário em SSDs Enterprise modernos pode levar de 4 a 24 horas de escrita contínua.

      3. Janela de Teste

      A SNIA define que o estado estacionário é atingido quando, numa janela de medição (ex: rodadas de 1 minuto), a variação de IOPS e Latência não excede 10% da média e a inclinação da curva de performance é próxima de zero.

      Exemplo de implementação com FIO

      Não use CrystalDiskMark. Use fio (Flexible I/O Tester) no Linux.

      # Exemplo simplificado de pré-condicionamento (NÃO RODE NO SEU OS DRIVE)
      fio --name=precondition --filename=/dev/nvme0n1 --direct=1 \
      --rw=randwrite --bs=4k --ioengine=libaio --iodepth=32 \
      --numjobs=4 --time_based --runtime=14400 --group_reporting
      

      Nota: O parâmetro runtime=14400 força 4 horas de escrita para saturar o drive.

      Fluxograma detalhando as etapas da metodologia SNIA PTS: Purge, Pré-condicionamento independente de carga, Pré-condicionamento baseado em carga, Verificação de Estado Estacionário e Medição Final. Figura: Fluxograma detalhando as etapas da metodologia SNIA PTS: Purge, Pré-condicionamento independente de carga, Pré-condicionamento baseado em carga, Verificação de Estado Estacionário e Medição Final.

      Interpretando Histogramas e Gráficos de Dispersão

      Ao analisar os resultados de um teste sério, abandone os gráficos de barras simples. Eles escondem a realidade.

      O gráfico de "Nuvem de Pontos" (Scatter Plot)

      Plote a latência (eixo Y) versus o tempo (eixo X) para cada I/O.

      • Bom SSD: Uma banda densa e estreita na parte inferior do gráfico.

      • SSD Instável: Uma "nuvem" dispersa, com pontos voando para a parte superior do gráfico em intervalos regulares (indicando ciclos de GC agressivos).

      Esses gráficos revelam se o firmware do SSD é otimizado para consistência ou apenas para benchmarks rápidos. Drives focados em Data Center (como as linhas Intel/Solidigm D7 ou Samsung PM9a3) mostram linhas retas e chatas. Drives Gamer (mesmo os topos de linha) costumam mostrar padrões de "serra", onde a performance cai drasticamente assim que o cache SLC se esgota.

      Comparação visual de gráficos de dispersão (scatter plots): à esquerda, um SSD Enterprise com latência consistente; à direita, um SSD de consumo apresentando alta variabilidade e picos de latência sob carga. Figura: Comparação visual de gráficos de dispersão (scatter plots): à esquerda, um SSD Enterprise com latência consistente; à direita, um SSD de consumo apresentando alta variabilidade e picos de latência sob carga.

      Veredito Técnico

      A era de escolher armazenamento baseando-se em "MB/s sequenciais" acabou. Em um mundo de virtualização, containers e bancos de dados transacionais, a consistência sob carga é a única moeda de valor.

      Se você gerencia infraestrutura crítica:

      1. Ignore a caixa: As especificações de marketing são baseadas em cenários ideais (FOB + Queue Depth alta) que raramente ocorrem na prática.

      2. Exija dados de p99.99: Se o fabricante não fornece curvas de latência de cauda, assuma que o produto não foi feito para workloads sustentados.

      3. Valide no seu cenário: Use ferramentas como fio seguindo a metodologia SNIA para simular sua carga real após o drive estar cheio.

      O estado estacionário é o teste da verdade. Todo SSD é rápido quando novo; apenas os bem projetados continuam rápidos quando cheios e sob pressão.


      FAQ: Perguntas Frequentes

      O que é Estado Estacionário (Steady State) em SSDs? É o estado de performance real que um SSD atinge após todos os seus blocos livres terem sido escritos pelo menos uma vez. Nesse ponto, o controlador precisa realizar Garbage Collection (limpeza) simultaneamente às novas escritas, resultando em uma performance menor, porém realista e estável, diferente da velocidade de pico 'Fresh Out of Box' (FOB).
      Por que a latência de cauda (Tail Latency) é mais importante que a média? A latência média esconde os extremos. A latência de cauda (p99 ou p99.99) mostra o tempo de resposta dos 1% ou 0.01% de requisições mais lentas. Em bancos de dados de alta frequência, esses 'picos' são os responsáveis por travar a aplicação, causar timeouts e degradar a experiência do usuário, mesmo que a média pareça rápida.
      Como fazer o pré-condicionamento correto de um SSD para testes? Seguindo a metodologia SNIA PTS: primeiro, faça um Secure Erase para limpar o mapeamento lógico. Segundo, encha o disco sequencialmente (2x a capacidade) para invalidar células vazias. Terceiro, execute uma carga de escrita aleatória sustentada até que a variação de performance se estabilize (entre no estado estacionário) antes de iniciar a medição oficial.

      Referências & Leitura Complementar

      • SNIA (Storage Networking Industry Association). "Solid State Storage (SSS) Performance Test Specification (PTS) v2.0.1". Technical Standard, 2020.

      • JEDEC. "JESD218: Solid-State Drive (SSD) Requirements and Endurance Test Method". JEDEC Solid State Technology Association, Atualizado periodicamente.

      • NVM Express. "NVM Express Base Specification 2.0". NVMe Organization, Seções sobre Endurance Groups e NVM Sets.

      #ssd steady state #latência de cauda p99 #benchmark storage #snia pts #garbage collection ssd #qos nvme #fio benchmark
      Dr. Elena Kovic
      Assinatura Técnica

      Dr. Elena Kovic

      Metodologista de Benchmark

      "Desmonto o marketing com análise estatística rigorosa. Meus benchmarks isolam cada variável para revelar a performance crua e sem filtros do hardware corporativo."