ArmazenamentoReview.com

Comparação de desempenho NVMe: Windows Server 2025 vs. Ubuntu Server 24.04.4 LTS

Empreendimento  ◇  Software

Após publicarmos nosso artigo sobre o recurso NVMe nativo opcional da Microsoft no Windows Server 2025 , recebemos diversos pedidos para uma comparação direta do desempenho de armazenamento entre o Windows Server 2025 com NVMe nativo e um sistema operacional de servidor baseado em Linux. Um usuário do Reddit particularmente entusiasmado chegou a nos oferecer cerveja para fazermos isso! Como obviamente não havia outras opções viáveis, decidimos executar os mesmos testes no Linux.

Comparação de desempenho entre SSDs NVMe no Windows Server 2025 e no Linux

Há muito tempo atrás, em uma versão de sistema operacional muito, muito distante.

O kernel do Linux oferece suporte a NVMe desde a versão 3.3 , lançada em março de 2012. Da mesma forma, o protocolo é suportado no Windows Server (não nativamente, via tradução SCSI) desde a versão 2012 R2, por volta de outubro de 2013. Mais de uma década depois, os usuários ainda debatem qual sistema operacional, Windows ou Linux, é melhor para armazenamento. Por isso, decidimos contribuir para essa discussão com resultados de benchmarks comparando os dois sistemas.

Como já possuímos resultados de testes para o Windows Server 2025 utilizando stacks de armazenamento nativas e não nativas, consideramos apropriado avaliar duas stacks de armazenamento no Linux. Para nossos benchmarks de FIO, utilizamos tanto a libaio quanto a io_uring, duas das APIs mais populares para transações de armazenamento. Embora a io_uring seja consideravelmente mais recente e ofereça muitas melhorias para E/S assíncrona, a libaio continua sendo amplamente utilizada devido à sua flexibilidade e facilidade de uso (Didona, Pfefferle, Ioannou, Metzler e Trivedi, 2022). Descrições completas da arquitetura de ambas as stacks estão além do escopo deste artigo, mas ainda assim apresentamos resultados para uma comparação direta.

Testando NVMe no Ubuntu Server 24.04.4 LTS

Nossa plataforma de hardware para esta comparação é o mesmo servidor usado em nosso artigo sobre NVMe nativo do Windows Server 2025. Para garantir o máximo desempenho e resultados consistentes, ele está equipado com duas CPUs AMD EPYC 9754 de 128 núcleos, 768 GB de memória DDR5 a 4800 MT/s e quinze SSDs NVMe Solidigm P5316 de 30.72 TB com PCIe 4.0 em uma configuração JBOD.

Como mencionamos em nosso artigo anterior, o Solidigm P5316 possui uma unidade de indireção de 64 kilobytes, o que significa que o desempenho de gravação para tamanhos menores (como testes de 4K) geralmente é pior do que o esperado. Mais uma vez, executamos diferentes padrões de teste com tamanhos de bloco de 4K, 64K e 128K para fornecer uma ampla gama de resultados para operações de leitura e gravação.

Selecionamos o Ubuntu Server 24.04.4 LTS como nosso exemplo de Linux devido à sua popularidade e suporte de longo prazo. Ele roda com o kernel Linux 6.8 por padrão, que não é o mais recente nem o mais avançado, mas provavelmente representa uma grande parte das instalações em todo o mundo.

Destaques

  • O NVMe nativo do Windows Server 2025 vence em três dos quatro testes de desempenho de leitura.
  • Observou-se menor uso de CPU com o Windows Server na maioria dos testes.
  • O Ubuntu Server 24.04.4 LTS venceu em três dos quatro testes de desempenho de gravação.
métrico 4K aleatórios 64K aleatórios
Windows não nativo Nativo do Windows Linux libao Linux io_uring Windows não nativo Nativo do Windows Linux libao Linux io_uring
Leitura aleatória
Largura de banda (GiB/s) 6.1 10.058 9.198 9.504 74.291 91.165 77.517 77.7
IOPS 1,598,959 2,636,516 2,411,000 2,491,000 1,217,176 1,493,637 1,270,000 1,273,000
Latência média (ms) 0.169 0.104 0.198 0.192 0.239 0.207 0.377 0.376
Utilização total da CPU (%) 72.67 74.22 99.77 99.76 68.44 65.11 83.16 84.72

 

métrico Sequencial 64K Sequencial 128K
Windows não nativo Nativo do Windows Linux libao Linux io_uring Windows não nativo Nativo do Windows Linux libao Linux io_uring
Leitura Seqüencial
Largura de banda (GiB/s) 35.596 35.623 31.867 31.433 86.791 92.562 97.05 97
IOPS 583,192 583,638 522,000 515,000 710,978 758,252 795,000 795,000
Latência média (ms) 0.809 0.812 0.919 0.932 0.613 0.608 0.603 0.604
Utilização total da CPU (%) 44.89 37.11 53.94 41.74 61.56 49.56 75.14 76.90

 

métrico 4K aleatórios 64K aleatórios
Windows não nativo Nativo do Windows Linux libao Linux io_uring Windows não nativo Nativo do Windows Linux libao Linux io_uring
Random Write
Largura de banda (GiB/s) 1.803 1.756 1.876 1.815 7.654 7.655 7.652 7.651
IOPS 472,725 460,383 492,000 476,000 125,391 125,406 125,000 125,000
Latência média (ms) 0.992 1.028 0.974 1.007 3.814 3.816 3.827 3.828
Utilização total da CPU (%) 26.00 20.67 45.76 22.80 12.22 9.33 20.07 10.90

 

métrico Sequencial 64K Sequencial 128K
Windows não nativo Nativo do Windows Linux libao Linux io_uring Windows não nativo Nativo do Windows Linux libao Linux io_uring
Escrita Seqüencial
Largura de banda (GiB/s) 44.67 50.087 52.283 52.25 50.477 50.079 52 52.083
IOPS 731,859 820,603 856,000 856,000 413,495 410,232 426,000 427,000
Latência média (ms) 0.399 0.558 0.560 0.560 1.022 1.149 1.126 1.125
Utilização total da CPU (%) 70.44 57.78 61.88 62.75 58.44 47.33 61.49 44.27


Observação:
Nossos resultados de IOPS no Linux são arredondados para o milhar mais próximo devido a diferenças na forma como o FIO é relatado entre o Windows Server 2025 e o Ubuntu Server 24.04.4 LTS. Os resultados de largura de banda, latência e uso da CPU são arredondados de forma consistente em ambas as plataformas.

Os números não mentem

De imediato, percebemos que o Ubuntu não supera o Windows em todas as categorias. Embora o libaio e o io_uring tenham apresentado excelente desempenho em nossos testes de largura de banda de leitura aleatória, eles não igualaram o desempenho da pilha NVMe nativa da Microsoft. O kernel do Windows NT superou o kernel do Linux em cerca de 17% em nossos testes de leitura aleatória de 64K, com um resultado vencedor de 91.165 GiB/s no NVMe nativo, contra o melhor resultado do io_uring, de 77.7 GiB/s.

Contudo, nem toda a esperança está perdida para o terror tecnológico de Torvalds. O Ubuntu Server superou por pouco o Windows Server em um de nossos testes de desempenho de leitura: o teste sequencial de 128K. Nesse teste, a biblioteca libaio do Linux apresentou o melhor desempenho, com 97.05 GiB/s, em comparação com os 92.562 GiB/s do NVMe nativo do Windows, uma diferença de cerca de 5%. Isso indica que o Linux pode ter uma ligeira vantagem no gerenciamento de tamanhos de bloco maiores que as unidades de indireção dos drives.

A largura de banda de gravação aleatória foi consistente tanto no Linux quanto no Windows, especialmente nos testes de benchmark de 64K. Os melhores e piores resultados desses testes diferiram em apenas 0.05%, sugerindo que todas as configurações de armazenamento aproveitaram todo o potencial dos drives.

Curiosamente, o kernel Linux 6.8 saiu vitorioso nos testes de largura de banda de gravação sequencial para tamanhos de bloco de 64 KB e 128 KB. Embora a diferença não tenha sido enorme, as soluções de software livre superaram o NVMe nativo do Windows Server em cerca de 2 GiB/s em ambos os casos.

Os resultados de latência geralmente acompanharam os resultados dos testes de throughput, o que ficou mais evidente pela diferença nas médias de leitura aleatória. Infelizmente para o Tux, libaio e io_uring apresentaram latências mais altas, com a maior diferença de 0.17 ms entre o NVMe nativo do Windows Server (0.207 ms) e o libaio (0.377 ms) para leituras aleatórias de 64 KB.

Talvez a revelação mais surpreendente de nossos testes seja a enorme diferença no uso da CPU entre o Windows Server 2025 e o Ubuntu Server 24.04.4 LTS. Em três dos quatro testes de leitura aleatória e sequencial, o NVMe nativo do Windows Server apresentou o menor uso de CPU. O resultado mais notável foi observado durante o teste de leitura sequencial de 128K, onde o Windows utilizou 27.34% menos CPU que o Linux.

O uso da CPU com libaio e io_uring apresentou desempenho ligeiramente melhor nos testes de gravação aleatória e sequencial, mas ainda não foi suficiente para impedir que o NVMe nativo no Windows Server vencesse em três dos benchmarks. Uma exceção notável foi o uso da CPU pelo libaio durante o teste de gravação aleatória de 4K, que atingiu 45.76% da CPU do sistema, enquanto as outras pilhas de armazenamento ficaram em torno de 20%.

Jantar de CPU para o vencedor, vencedor

Como mostram nossos resultados, o Windows Server e o Ubuntu Server apresentam desempenho semelhante em testes comparativos diretos, tanto em testes aleatórios quanto sequenciais, com diferentes tamanhos de bloco. Em termos de largura de banda, o Windows Server 2025 com NVMe nativo geralmente superou o Linux na maioria dos testes de leitura, enquanto o Linux apresentou resultados ligeiramente melhores em nossos testes de gravação. Nossos dados de latência confirmaram essa tendência, mas o grande destaque foi a eficiência da CPU do Windows Server 2025 ao usar NVMe nativo.

A Microsoft claramente se esforçou para tornar sua mais recente pilha de armazenamento a melhor possível, e embora nem sempre supere libaio e io_uring, oferece uma boa resistência. Embora esses resultados não sejam definitivos para todos os casos de uso e configurações de servidor, eles podem ajudar os administradores de servidores a decidir se devem implantar um servidor Windows ou Linux quando o desempenho do armazenamento for mais crítico do que a compatibilidade do sistema operacional.

Compartilhe sua opinião sobre esses resultados comentando em nossas redes sociais ou no Discord da SR ! Você esperava que o Windows Server tivesse um desempenho tão bom em nossos testes, ou estava torcendo pelo Linux? Gostaria de ver mais distribuições ou kernels Linux testados? Estamos sempre em busca de feedback, e testes como este, solicitados pelos leitores, costumam se tornar nossos artigos favoritos.

Referências

Didona, D., Pfefferle, J., Ioannou, N., Metzler, B., & Trivedi, A. (13 de junho de 2022). Compreendendo as APIs de armazenamento modernas: um estudo sistemático de libaio, SPDK e io_uring. SYSTOR '22, 120-121. Recuperado em 3 de abril de 2026, de https://atlarge-research.com/pdfs/2022-systor-apis.pdf

Envolva-se com a StorageReview

Newsletter | YouTube | Podcast iTunes / Spotify | Instagram | Twitter | TikTok | Feed RSS

André Waag

Andrew Waag é um Distributed Systems Administrator na Linde plc cujos interesses incluem hardware de servidor, sistemas de armazenamento empresarial e equipamentos de rede. Ele está sempre procurando coisas novas para fazer com seu homelab e experimentando tecnologias de virtualização e armazenamento.