Benchmark de SSD: o guia definitivo de precondicionamento e steady state
Descubra por que benchmarks de marketing falham. Aprenda a metodologia SNIA para levar SSDs do estado FOB ao steady state e medir a performance real de engenharia.
Se você baseia suas decisões de arquitetura de armazenamento nos números estampados na caixa do SSD ou em capturas de tela do CrystalDiskMark rodando por cinco minutos, sua infraestrutura está sendo construída sobre uma mentira. No universo de storage corporativo e datacenters, a performance de pico — aquela obtida quando o drive acabou de sair da embalagem antiestática — é uma métrica de vaidade. Ela é irrelevante para a operação real de um banco de dados ou de um cluster de virtualização.
O único número que importa é o desempenho em Steady State (estado estacionário). É aqui que a realidade da física da memória NAND colide com o marketing. Quando um SSD é submetido a cargas de escrita sustentadas, a performance inevitavelmente degrada até atingir um platô. Entender como medir, prever e validar esse platô é o que separa um administrador de sistemas amador de um engenheiro de armazenamento.
Resumo em 30 segundos
- O mito do FOB: Drives novos (Fresh Out of Box) operam em condições ideais que desaparecem minutos após o início de uma carga de trabalho real.
- O inimigo oculto: O Garbage Collection e a falta de blocos livres forçam o controlador a realizar ciclos de leitura-modificação-escrita, destruindo a latência.
- A regra de ouro: Nunca confie em benchmarks que não aplicam protocolos rigorosos de precondicionamento (como o SNIA PTS) para forçar o drive ao seu pior cenário estável.
Figura: Gráfico demonstrando a curva típica de degradação de performance de um SSD, partindo do estado FOB até a estabilização no Steady State.
A anatomia do engano: estado FOB vs. realidade
Quando um SSD sai da fábrica, ele está no estado FOB (Fresh Out of Box). Neste cenário, todas as páginas da memória NAND estão apagadas e prontas para receber dados. O controlador não precisa realizar nenhuma "ginástica" de gerenciamento; ele simplesmente grava os dados nas páginas livres. Além disso, a maioria dos drives modernos utiliza uma porção da NAND como cache pSLC (pseudo-SLC), onde células TLC ou QLC são tratadas como SLC (1 bit por célula) para absorver escritas em altíssima velocidade.
Benchmarks sintéticos rápidos, como os populares em reviews de consumo, operam quase inteiramente dentro desse cache e em um drive vazio. O resultado é um número de IOPS inflado que o drive jamais sustentará em um servidor de produção.
O despertar do Garbage Collection
O problema começa quando o drive enche. Ao contrário de um disco magnético (HDD), que pode sobrescrever dados diretamente, a memória NAND precisa ser apagada antes de ser reescrita. O problema é a granularidade:
Leitura/Escrita: Ocorre em nível de Página (ex: 4KB ou 16KB).
Apagamento (Erase): Ocorre em nível de Bloco (que contém centenas de páginas).
Quando você precisa atualizar um dado em um drive cheio, o controlador não pode apenas sobrescrever a página antiga. Ele marca a página antiga como "inválida" e grava o novo dado em outro lugar. Eventualmente, o drive fica sem páginas livres.
Neste ponto, o processo de Garbage Collection (GC) entra em ação. O controlador deve:
Ler um bloco inteiro que contém dados misturados (válidos e inválidos).
Separar os dados válidos.
Reescrever esses dados válidos em um novo bloco limpo.
Apagar o bloco original para torná-lo disponível novamente.
Esse processo gera a Amplificação de Escrita (Write Amplification). Uma solicitação de escrita de 4KB do sistema operacional pode resultar em 12KB ou mais de escritas internas na NAND. Isso consome largura de banda interna e ciclos de processamento do controlador, causando picos de latência massivos.
Figura: O ciclo de Garbage Collection: a movimentação forçada de dados válidos antes do apagamento do bloco, gerando latência e amplificação de escrita.
Metodologia de precondicionamento
Para obter dados honestos, precisamos simular o estado do drive após meses de uso intenso. Isso é feito através do Precondicionamento. A SNIA (Storage Networking Industry Association) define padrões rigorosos para isso na especificação PTS (Performance Test Specification).
O objetivo é duplo: exaurir o cache pSLC e forçar o controlador a entrar em modo de recuperação contínua de blocos (GC ativo durante a escrita).
Tabela comparativa: teste amador vs. profissional
| Variável | Benchmark Amador (ex: CrystalDiskMark padrão) | Benchmark Profissional (SNIA PTS / FIO) |
|---|---|---|
| Estado Inicial | Drive vazio ou com sistema operacional instalado | Secure Erase seguido de preenchimento total |
| Duração | 1 a 5 minutos | Horas ou dias (até atingir estabilidade) |
| Área de Teste | Arquivo de 1GB a 32GB | LBA (Logical Block Address) completo do disco |
| Foco | Pico de throughput (Burst) | Consistência de IOPS e Latência de Cauda |
| Cache | Quase 100% dentro do cache SLC | Cache saturado, testando a NAND nativa |
O protocolo de purga
Um teste válido deve seguir estritamente esta sequência:
Purge (Secure Erase): Resetar o drive para o estado FOB via comando ATA ou NVMe. Isso garante que não haja histórico de tabelas de mapeamento corrompidas ou dados antigos influenciando o teste.
Workload Independent Preconditioning (WIPC): Antes de rodar o teste específico, escrevemos sequencialmente em todo o espaço do usuário duas vezes (2x Capacity). Isso garante que todas as células lógicas tenham um mapeamento físico associado.
Workload Dependent Preconditioning (WDPC): Rodamos a carga de trabalho exata que queremos medir (ex: 4K Random Write) continuamente. Não paramos até que o drive atinja o Steady State.
⚠️ Perigo: Rodar um teste de leitura aleatória em um drive que foi precondicionado sequencialmente (ou vice-versa) invalidará seus resultados. O padrão de fragmentação dos dados na NAND afeta diretamente a performance de leitura futura. O precondicionamento deve preparar o "terreno" da mesma forma que o teste o encontrará.
Figura: Fluxograma do protocolo de teste SNIA PTS, detalhando as etapas críticas de purga, preenchimento e verificação matemática de estabilidade.
A matemática do steady state
Como sabemos que o drive "estabilizou"? Não é "no olhômetro". Existe uma definição matemática precisa para o Steady State. Segundo a SNIA, o estado estacionário é alcançado quando, em uma janela de medição (geralmente 5 rodadas de teste ou um período de tempo):
Variação (Excursion): A variação entre o valor máximo e mínimo de IOPS medidos na janela não excede 20% da média.
Tendência (Slope): A inclinação da linha de tendência linear (regressão) dos dados plotados está próxima de zero. Ou seja, a performance parou de cair ou subir consistentemente.
Se você plotar os IOPS ao longo do tempo, verá uma curva que cai drasticamente (o "precipício de transição") e depois oscila em torno de uma média. O teste só é válido quando entra nessa zona de oscilação estável. Para SSDs Enterprise (como as séries Intel D7 ou Samsung PM9A3), essa linha é reta e consistente. Para SSDs de consumo (mesmo os "Pro"), essa linha é errática e cheia de vales profundos onde a latência dispara.
💡 Dica Pro: Ao usar o FIO (Flexible I/O Tester), utilize os parâmetros
--ss=iops:20%e--ss_dur=30mpara que a ferramenta detecte automaticamente o steady state e pare o precondicionamento apenas quando o critério for atendido.
Figura: Visualização da janela de medição para validação do Steady State, demonstrando o critério de excursão de 20% da SNIA.
Latência de cauda: onde o SLA morre
A média é uma mentira estatística em storage. Se um SSD tem latência média de 100µs (microssegundos), mas a cada 1000 operações uma delas leva 500ms (milissegundos) devido a um bloqueio de Garbage Collection, seu banco de dados vai travar.
Em benchmarks sérios, focamos nos percentis:
p99: 99% das requisições foram mais rápidas que este valor.
p99.99 (quatro noves): O pior cenário recorrente.
Um SSD Enterprise de qualidade mantém o p99.99 muito próximo da média. Um SSD de consumo pode ter uma média excelente, mas um p99.99 desastroso. É essa inconsistência que causa "engasgos" (stuttering) em aplicações críticas. Ao analisar gráficos de latência, procure por "nuvens" de pontos compactas. Pontos dispersos na parte superior do gráfico indicam má gestão de QoS (Quality of Service) pelo firmware do controlador.
Figura: Comparativo de consistência de latência (QoS) entre um SSD Enterprise e um SSD de Consumo sob carga de steady state.
Ferramentas e execução
Esqueça interfaces gráficas bonitas. Para realizar esses testes, a ferramenta padrão da indústria é o FIO no Linux. Ele permite controle granular sobre profundidade de fila (Queue Depth), tamanho de bloco, padrão de acesso e mistura de leitura/escrita.
Um exemplo simplificado de script FIO para precondicionamento de escrita aleatória 4K seria:
fio --name=precondition --filename=/dev/nvme0n1 --direct=1 \
--rw=randwrite --bs=4k --ioengine=libaio --iodepth=32 \
--numjobs=4 --time_based --runtime=14400 --group_reporting
Este comando martela o drive por 4 horas (14400 segundos). Em cenários reais de validação, esse tempo é dinâmico, baseado na verificação matemática descrita anteriormente.
O veredito técnico
A performance de um SSD não é um número estático; é um comportamento dinâmico governado por algoritmos complexos de firmware e limitações físicas da NAND. Números de pico são úteis apenas para transferências de arquivos curtas em desktops. Para qualquer aplicação que envolva virtualização, bancos de dados ou ingestão contínua de dados, ignorar o precondicionamento é negligência técnica.
Ao avaliar hardware para sua infraestrutura, exija datasheets que especifiquem "Steady State Performance" (geralmente marcado com notas de rodapé citando SNIA). Se o fabricante esconde esses dados, assuma o pior cenário. Projete sua infraestrutura baseada no piso de performance, nunca no teto. A estabilidade sempre supera a velocidade máxima teórica em ambientes de produção.
Referências & Leitura Complementar
SNIA Solid State Storage (SSS) Performance Test Specification (PTS): O documento "bíblia" para metodologia de teste de SSDs.
JEDEC JESD218 & JESD219: Padrões que definem as cargas de trabalho (workloads) para testes de endurance e performance em SSDs Client e Enterprise.
FIO Documentation: Manual oficial da ferramenta Flexible I/O Tester, essencial para replicar cargas sintéticas controladas.
O que é o estado FOB em um SSD?
FOB (Fresh Out of Box) é o estado de um SSD novo ou recém-formatado (via Secure Erase), onde todas as páginas NAND estão logicamente livres. Isso permite que o controlador realize escritas diretas sem a penalidade de latência causada pelo processo de Garbage Collection, resultando em performance artificialmente alta.Por que o precondicionamento é necessário para benchmarks sérios?
O precondicionamento força o SSD a sair do estado ideal (FOB) e entrar em um estado de uso contínuo (Steady State). Isso simula o comportamento real do drive em servidores após semanas ou meses de operação, eliminando o viés de performance temporário proporcionado pelo cache SLC ou pela abundância de blocos vazios.Como o Garbage Collection afeta a performance de escrita?
Quando o SSD esgota seus blocos livres, o controlador não pode apenas escrever novos dados. Ele precisa ler blocos parcialmente usados, consolidar os dados válidos em um novo local e apagar o bloco antigo antes de liberar espaço. Esse ciclo (Read-Modify-Write) consome recursos internos e aumenta drasticamente a latência e reduz o throughput disponível para o sistema operacional.Qual a diferença entre precondicionamento dependente e independente de carga?
O precondicionamento independente de carga (WIPC) geralmente envolve encher o disco inteiro sequencialmente para garantir que todas as células tenham sido endereçadas. O dependente de carga (WDPC) roda o workload específico do teste (ex: random write 4K) continuamente até que a performance se estabilize matematicamente, garantindo que a estrutura interna da NAND esteja fragmentada exatamente como estaria no cenário real daquele teste.
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."