Tras publicar nuestro artículo sobre la función NVMe nativa opcional de Microsoft en Windows Server 2025, recibimos numerosas solicitudes de una comparación directa del rendimiento de almacenamiento entre Windows Server 2025 (con soporte NVMe nativo) y un sistema operativo de servidor basado en Linux. Un Redditor particularmente entusiasta incluso nos ofreció cerveza para realizar la prueba. Con una demanda tan abrumadora, no tuvimos más remedio que ejecutar el mismo conjunto de benchmarks en Linux para ofrecer la comparación cara a cara que nuestros lectores querían.
Rendimiento de SSDs de NVMe de Windows Server 2025 frente a Linux
Hace mucho tiempo, en una versión de sistema operativo muy, muy lejana
Linux ha admitido NVMe desde la versión 3.3 del kernel, lanzada en marzo de 2012. De manera similar, Windows Server ha ofrecido soporte NVMe (no nativo, a través de traducción SCSI) desde la versión 2012 R2 alrededor de octubre de 2013. Más de una década después, el debate sobre si Windows o Linux ofrece un mejor rendimiento de almacenamiento sigue vigente, y estamos agregando más datos a la conversación con los resultados de nuestros benchmarks que comparan los dos sistemas operativos.
Dado que ya teníamos resultados de pruebas para Windows Server 2025 utilizando pilas de almacenamiento tanto no nativas como nativas, decidimos evaluar dos pilas de almacenamiento populares en Linux para una comparación justa. Para nuestros benchmarks FIO, utilizamos libaio y io_uring, dos de las API más utilizadas para transacciones de almacenamiento. Si bien io_uring es significativamente más nuevo y ofrece numerosas mejoras para E/S asíncrona, libaio sigue siendo un elemento básico debido a su flexibilidad y facilidad de uso (Didona, Pfefferle, Ioannou, Metzler y Trivedi, 2022). Un desglose arquitectónico completo de ambas pilas está más allá del alcance de este artículo, pero proporcionamos resultados completos para permitir una comparación directa lado a lado.
Prueba de NVMe en Ubuntu Server 24.04.4 LTS
Utilizamos la misma plataforma de hardware para esta comparación que en nuestro artículo sobre NVMe nativo de Windows Server 2025, asegurando la consistencia y comparaciones de rendimiento precisas. El servidor está equipado con dos CPUs AMD EPYC 9754 de 128 núcleos, 768 GB de memoria DDR5 funcionando a 4800 MT/s y quince SSDs NVMe Solidigm P5316 de 30.72 TB (PCIe 4.0) configurados en modo JBOD.
Como se señaló en nuestro artículo anterior, el Solidigm P5316 tiene un tamaño de unidad de indirección de 64 kilobytes, lo que a menudo resulta en un rendimiento de escritura inferior al esperado para tamaños de bloque pequeños (como las pruebas de 4K). Para proporcionar una visión completa, ejecutamos pruebas con tamaños de bloque de 4K, 64K y 128K, midiendo las operaciones de lectura y escritura en todas las configuraciones.
Seleccionamos Ubuntu Server 24.04.4 LTS como nuestro representante de Linux debido a su popularidad generalizada y su estado de soporte a largo plazo (LTS). Viene con el kernel de Linux 6.8 por defecto; aunque no es el más nuevo disponible, esta versión del kernel probablemente representa una gran parte de las instalaciones de servidores Linux del mundo real a nivel mundial.
Puntos destacados
-
Windows Server 2025 (NVMe nativo) supera a Ubuntu en 3 de cada 4 benchmarks de rendimiento de lectura
-
Windows exhibió consistentemente un menor uso de CPU durante la mayoría de las pruebas
-
Ubuntu Server 24.04.4 LTS gana en 3 de cada 4 benchmarks de rendimiento de escritura
Resultados de benchmarks
Rendimiento de lectura aleatoria
|
Métrica
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Tamaño de bloque
|
Aleatorio 4K
|
Aleatorio 64K
|
||||||
|
Ancho 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
|
|
Latencia promedio (ms)
|
0.169
|
0.104
|
0.198
|
0.192
|
0.239
|
0.207
|
0.377
|
0.376
|
|
Uso total de CPU (%)
|
72.67
|
74.22
|
99.77
|
99.76
|
68.44
|
65.11
|
83.16
|
84.72
|
Rendimiento de lectura secuencial
|
Métrica
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Tamaño de bloque
|
Secuencial 64K
|
Secuencial 128K
|
||||||
|
Ancho 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
|
|
Latencia promedio (ms)
|
0.809
|
0.812
|
0.919
|
0.932
|
0.613
|
0.608
|
0.603
|
0.604
|
|
Uso total de CPU (%)
|
44.89
|
37.11
|
53.94
|
41.74
|
61.56
|
49.56
|
75.14
|
76.90
|
Rendimiento de escritura aleatoria
|
Métrica
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Tamaño de bloque
|
Aleatorio 4K
|
Aleatorio 64K
|
||||||
|
Ancho 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
|
|
Latencia promedio (ms)
|
0.992
|
1.028
|
0.974
|
1.007
|
3.814
|
3.816
|
3.827
|
3.828
|
|
Uso total de CPU (%)
|
26.00
|
20.67
|
45.76
|
22.80
|
12.22
|
9.33
|
20.07
|
10.90
|
Rendimiento de escritura secuencial
|
Métrica
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
Windows no nativo
|
Windows nativo
|
Linux libaio
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Tamaño de bloque
|
Secuencial 64K
|
Secuencial 128K
|
||||||
|
Ancho 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
|
|
Latencia promedio (ms)
|
0.399
|
0.558
|
0.560
|
0.560
|
1.022
|
1.149
|
1.126
|
1.125
|
|
Uso total de CPU (%)
|
70.44
|
57.78
|
61.88
|
62.75
|
58.44
|
47.33
|
61.49
|
44.27
|
Nota: Nuestros resultados de IOPS de Linux se redondean al millar más cercano debido a diferencias en la presentación de informes de FIO entre Windows Server 2025 y Ubuntu Server 24.04.4 LTS. Los resultados de ancho de banda, latencia y uso de CPU se redondean de manera consistente en ambas plataformas.
Los números no mienten
Nuestros benchmarks dejan claro que Ubuntu no supera a Windows en todas las categorías. Si bien libaio y io_uring ofrecieron un alto rendimiento en las pruebas de lectura aleatoria, no pudieron igualar el rendimiento de la pila NVMe nativa de Microsoft. El kernel de Windows NT superó al kernel de Linux en aproximadamente un 17% en nuestras pruebas de lectura aleatoria de 64K, con NVMe nativo de Windows alcanzando 91.165 GiB/s frente a los 77.7 GiB/s de io_uring.
Sin embargo, Linux no está exento de victorias. Ubuntu Server superó por poco a Windows Server en un benchmark de rendimiento de lectura: la prueba secuencial de 128K. Aquí, libaio de Linux tuvo el mejor rendimiento con 97.05 GiB/s, en comparación con los 92.562 GiB/s de NVMe nativo de Windows, una diferencia de aproximadamente el 5%. Esto sugiere que Linux puede tener una ligera ventaja al administrar tamaños de bloque mayores que las unidades de indirección de las unidades.
El ancho de banda de escritura aleatoria fue consistente en ambos sistemas operativos, particularmente en los benchmarks de 64K. Los mejores y peores resultados en estas pruebas difirieron solo en un 0.05%, lo que indica que todas las pilas de almacenamiento pudieron utilizar completamente el potencial de las unidades.
Curiosamente, el kernel 6.8 de Linux reclamó la victoria en las pruebas de ancho de banda de escritura secuencial para tamaños de bloque de 64K y 128K. Si bien la diferencia no fue dramática, las pilas de almacenamiento de código abierto superaron a NVMe nativo de Windows Server en aproximadamente 2 GiB/s en ambos casos.
Los resultados de latencia generalmente reflejaron el rendimiento de rendimiento, especialmente en los promedios de lectura aleatoria. Desafortunadamente para Linux, libaio y io_uring exhibieron una mayor latencia, con la mayor brecha observada en lecturas aleatorias de 64K: NVMe nativo de Windows Server tuvo una latencia promedio de 0.207 ms, en comparación con los 0.377 ms de libaio, una diferencia de 0.17 ms.
Quizás el hallazgo más sorprendente de nuestros benchmarks es la diferencia significativa en el uso de CPU entre Windows Server 2025 y Ubuntu Server 24.04.4 LTS. En 3 de cada 4 benchmarks de lectura aleatoria y secuencial, NVMe nativo de Windows Server tuvo el menor uso de CPU. El resultado más llamativo fue en la prueba de lectura secuencial de 128K, donde Windows utilizó un 27.34% menos de CPU que Linux.
Libaio e io_uring tuvieron un rendimiento ligeramente mejor en las pruebas de escritura aleatoria y secuencial, pero no lo suficiente como para evitar que NVMe nativo de Windows Server ganara 3 de cada 4 benchmarks de uso de CPU de escritura. Una excepción notable fue el uso de CPU de libaio durante la prueba de escritura aleatoria de 4K, que alcanzó el 45.76%, mucho más alto que el ~20% de uso de CPU visto con otras pilas de almacenamiento.
Ganador, Ganador, Cena de CPU
Nuestros resultados muestran que Windows Server y Ubuntu Server tienen un rendimiento similar en pruebas de rendimiento aleatorio y secuencial cara a cara en diferentes tamaños de bloque. En términos de ancho de banda, Windows Server 2025 con NVMe nativo generalmente superó a Linux en la mayoría de las pruebas de lectura, mientras que Linux ofreció resultados ligeramente mejores en las pruebas de escritura. Las cifras de latencia siguieron un patrón similar, pero la ventaja destacada fue la eficiencia de CPU de Windows Server 2025 al usar NVMe nativo.
Microsoft claramente ha invertido mucho en refinar su pila de almacenamiento más reciente, y aunque no gana en todas las categorías contra libaio e io_uring, presenta una fuerte competencia. Estos resultados no son definitivos para todos los casos de uso y configuraciones de servidor, pero proporcionan información valiosa para los administradores de servidores que deciden si implementar Windows o Linux cuando el rendimiento del almacenamiento es una prioridad principal, por encima de la compatibilidad del sistema operativo.
Háganos saber lo que piensa sobre estos resultados comentando en nuestras plataformas sociales o en el Discord de SR. ¿Esperaba que Windows Server tuviera un rendimiento tan bueno, o estaba animando a Linux? ¿Le gustaría ver probadas más distribuciones o kernels de Linux? Siempre estamos ansiosos por recibir sus comentarios, y las pruebas solicitadas por los lectores como esta suelen ser nuestras favoritas.
Beijing Qianxing Jietong Technology Co., Ltd.
Sandy Yang/Director de Estrategia Global
WhatsApp / WeChat: +86 13426366826
Correo electrónico: yangyd@qianxingdata.com
Sitio web: www.qianxingdata.com/www.storagesserver.com
Enfoque comercial:
Distribución de productos TIC/Integración de sistemas y servicios/Soluciones de infraestructura
Con más de 20 años de experiencia en distribución de TI, nos asociamos con las principales marcas mundiales para ofrecer productos confiables y servicios profesionales.
¡Construyendo un Mundo Inteligente con Tecnología! Su proveedor de servicios de productos TIC de confianza.
Sandy Yang/Director de Estrategia Global
WhatsApp / WeChat: +86 13426366826
Correo electrónico: yangyd@qianxingdata.com
Sitio web: www.qianxingdata.com/www.storagesserver.com
Enfoque comercial:
Distribución de productos TIC/Integración de sistemas y servicios/Soluciones de infraestructura
Con más de 20 años de experiencia en distribución de TI, nos asociamos con las principales marcas mundiales para ofrecer productos confiables y servicios profesionales.
¡Construyendo un Mundo Inteligente con Tecnología! Su proveedor de servicios de productos TIC de confianza.



