Armazenamento

O que é NVMe?

Também conhecido como: NVM Express
Definição

NVMe is a storage protocol that connects solid-state drives directly over PCIe, reaching roughly 500,000 random IOPS with sub-100-microsecond latency. Its deep parallel queue model is architecturally different from SATA, which inherits a single-queue design intended for mechanical disks.

Porque é que NVMe importa

O seu modelo de fila paralela profunda é arquitetonicamente diferente de SATA, que herda um design de fila única destinado a discos mecânicos. Para aplicações baseadas em bases de dados, a diferença de IOPS aleatórios é a diferença que os utilizadores realmente sentem.

NVMe na prática

Ao provisionar uma instância NVMe, a primeira coisa que observa é a profundidade da fila da sua carga de armazenamento. Uma máquina com SATA atinge no máximo alguns milhares de IOPS sob carga; NVMe sustenta cerca de 500.000 IOPS aleatórios com latência abaixo de 100 microssegundos. Mude os seus testes sysbench e fio para medir randread e randwrite, não débito sequencial, e veja a diferença nos commits da base de dados. Se otimizar para o tamanho de bloco de um disco SAS ou ignorar as definições do agendador de I/O, está a deixar a maior parte da capacidade do hardware por usar. Se errar, a sua latência sobe cem vezes em cargas que realmente tocam no disco.

O que se costuma entender mal sobre NVMe

As pessoas assumem que NVMe é apenas um SSD mais rápido, por isso escolhem um plano com base no tamanho em GB em vez de IOPS. Correção: a diferença do NVMe é o modelo de filas paralelas, não apenas a largura de banda bruta. Um disco SATA grande ainda será um gargalo em I/O aleatório de fila única; um NVMe menor superá-lo-á para cargas de bases de dados. O tamanho importa, mas para trabalho sensível à latência, IOPS é a métrica que lhe custa se a ignorar.

NVMe — perguntas frequentes

Quantos IOPS aleatórios atinge o NVMe?

Cerca de 500.000 IOPS aleatórios, de acordo com a definição publicada. Isso é aproximadamente mil vezes mais do que um SSD SATA típico. A latência abaixo de 100 microssegundos significa que, para leituras e escritas pequenas e aleatórias, não está à espera da mecânica do disco ou de uma única fila SATA—o controlador e o barramento PCIe são o único caminho.

Preciso de NVMe para um site?

Só se a sua carga de trabalho for intensiva em I/O aleatório, como uma base de dados ou uma cache. A entrega de ficheiros estáticos ou um site de baixo tráfego não notará a diferença entre NVMe e SATA. A diferença surge em cargas mistas sustentadas, onde a fila única de SATA satura e a latência aumenta. Se executa Postgres ou Redis, NVMe manterá as suas latências de cauda baixas.

Mais de armazenamento

IOPS
IOPS mede quantas operações individuais de leitura ou escrita um dispositivo de armazenamento completa por segundo.
RAID 10
RAID 10 espelha dados em pares de discos e distribui (striping) através dos espelhos, dando redundância e alto desempenho ao custo de metade da capacidade bruta.
Instantâneo
Um instantâneo é uma cópia pontual de um disco de máquina virtual, criada instantaneamente e armazenada na mesma infraestrutura.