Dopo aver pubblicato il nostro articolo sulla funzionalità NVMe nativa di Microsoft su Windows Server 2025, abbiamo ricevuto numerose richieste per un confronto diretto delle prestazioni di archiviazione tra Windows Server 2025 (con supporto NVMe nativo) e un sistema operativo server basato su Linux. Un Redditor particolarmente entusiasta ci ha addirittura offerto della birra per condurre il test! Con una domanda così travolgente, non abbiamo avuto altra scelta che eseguire la stessa suite di benchmark su Linux per offrire il confronto diretto che i nostri lettori desideravano.
SSD con prestazioni NVMe di Windows Server 2025 e Linux
Molto tempo fa, in una versione del sistema operativo Molto, molto lontano
Linux supporta NVMe dalla versione 3.3 del kernel, rilasciata a marzo 2012. Allo stesso modo, Windows Server ha offerto il supporto NVMe (in modo non nativo, tramite traduzione SCSI) dal rilascio R2 del 2012 intorno a ottobre 2013. Più di un decennio dopo, il dibattito su se Windows o Linux offra prestazioni di archiviazione migliori è ancora in corso, e stiamo aggiungendo ulteriori dati alla conversazione con i nostri risultati benchmark confrontando i due sistemi operativi.
Poiché disponevamo già dei risultati dei test per Windows Server 2025 utilizzando stack di archiviazione sia nativi che non nativi, abbiamo deciso di valutare due stack di archiviazione popolari su Linux per un confronto equo. Per i nostri benchmark FIO, abbiamo utilizzato libaio e io_uring, due delle API più utilizzate per le transazioni di archiviazione. Sebbene io_uring sia significativamente più recente e offra numerosi miglioramenti per l'I/O asincrono, libaio rimane un punto fermo grazie alla sua flessibilità e facilità d'uso (Didona, Pfefferle, Ioannou, Metzler e Trivedi, 2022). Una suddivisione completa dell'architettura di entrambi gli stack va oltre lo scopo di questo articolo, ma forniamo risultati completi per consentire un confronto diretto affiancato.
Test di NVMe su Ubuntu Server 24.04.4 LTS
Per questo confronto abbiamo utilizzato la stessa piattaforma hardware del nostro articolo NVMe nativo di Windows Server 2025, garantendo coerenza e confronti accurati delle prestazioni. Il server è dotato di due CPU AMD EPYC 9754 da 128 core, 768 GB di memoria DDR5 a 4800 MT/s e quindici SSD Solidigm P5316 NVMe da 30,72 TB (PCIe 4.0) configurati in modalità JBOD.
Come notato nel nostro articolo precedente, Solidigm P5316 ha una dimensione dell'unità indiretta da 64 kilobyte, che spesso si traduce in prestazioni di scrittura inferiori alle aspettative per blocchi di dimensioni più piccole (come i test 4K). Per fornire una visione completa, abbiamo eseguito test con dimensioni dei blocchi di 4K, 64K e 128K, misurando le operazioni di lettura e scrittura su tutte le configurazioni.
Abbiamo selezionato Ubuntu Server 24.04.4 LTS come nostro rappresentante Linux per la sua popolarità diffusa e lo stato di supporto a lungo termine (LTS). Viene fornito con il kernel Linux 6.8 per impostazione predefinita: sebbene non sia la più recente disponibile, questa versione del kernel rappresenta probabilmente gran parte delle installazioni di server Linux reali a livello globale.
Punti salienti
-
Windows Server 2025 (NVMe nativo) supera Ubuntu in 3 benchmark delle prestazioni di lettura su 4
-
Windows Server ha mostrato costantemente un utilizzo inferiore della CPU durante la maggior parte dei test
-
Ubuntu Server 24.04.4 LTS vince in 3 benchmark delle prestazioni di scrittura su 4
Risultati dei benchmark
Prestazioni di lettura casuale
|
Metrico
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Dimensione del blocco
|
4K casuale
|
Casuale 64K
|
||||||
|
Larghezza di 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
|
|
Latenza media (ms)
|
0,169
|
0,104
|
0,198
|
0,192
|
0,239
|
0,207
|
0,377
|
0,376
|
|
Utilizzo totale della CPU (%)
|
72.67
|
74.22
|
99,77
|
99,76
|
68.44
|
65.11
|
83.16
|
84.72
|
Prestazioni di lettura sequenziale
|
Metrico
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Dimensione del blocco
|
Sequenziale 64K
|
Sequenziale 128K
|
||||||
|
Larghezza di 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
|
|
Latenza media (ms)
|
0,809
|
0,812
|
0,919
|
0,932
|
0,613
|
0,608
|
0,603
|
0,604
|
|
Utilizzo totale della CPU (%)
|
44.89
|
37.11
|
53,94
|
41.74
|
61.56
|
49.56
|
75.14
|
76,90
|
Prestazioni di scrittura casuale
|
Metrico
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Dimensione del blocco
|
4K casuale
|
Casuale 64K
|
||||||
|
Larghezza di 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
|
|
Latenza media (ms)
|
0,992
|
1.028
|
0,974
|
1.007
|
3.814
|
3.816
|
3.827
|
3.828
|
|
Utilizzo totale della CPU (%)
|
26.00
|
20.67
|
45.76
|
22.80
|
12.22
|
9.33
|
20.07
|
10.90
|
Prestazioni di scrittura sequenziale
|
Metrico
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
Windows non nativo
|
Nativo di Windows
|
Libro Linux
|
Linux io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Dimensione del blocco
|
Sequenziale 64K
|
Sequenziale 128K
|
||||||
|
Larghezza di 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
|
|
Latenza media (ms)
|
0,399
|
0,558
|
0,560
|
0,560
|
1.022
|
1.149
|
1.126
|
1.125
|
|
Utilizzo totale della CPU (%)
|
70.44
|
57,78
|
61.88
|
62,75
|
58.44
|
47.33
|
61.49
|
44.27
|
Nota: i nostri risultati IOPS di Linux sono arrotondati al migliaio più vicino a causa delle differenze nei report FIO tra Windows Server 2025 e Ubuntu Server 24.04.4 LTS. I risultati relativi a larghezza di banda, latenza e utilizzo della CPU vengono arrotondati in modo coerente su entrambe le piattaforme.
I numeri non mentono
I nostri benchmark chiariscono che Ubuntu non supera Windows in ogni categoria. Sebbene libaio e io_uring abbiano fornito un rendimento elevato nei test di lettura casuale, non sono riusciti a eguagliare le prestazioni dello stack NVMe nativo di Microsoft. Il kernel Windows NT ha sovraperformato il kernel Linux di circa il 17% nei nostri test da 64K in lettura casuale, con NVMe nativo di Windows che ha raggiunto 91,165 GiB/s contro il massimo di 77,7 GiB/s di io_uring.
Tuttavia, Linux non è privo di vittorie. Ubuntu Server ha superato di poco Windows Server in un benchmark delle prestazioni di lettura: il test sequenziale da 128K. In questo caso, il libaio di Linux ha ottenuto i migliori risultati a 97,05 GiB/s, rispetto all'NVMe nativo di Windows a 92,562 GiB/s, una differenza di circa il 5%. Ciò suggerisce che Linux potrebbe avere un leggero vantaggio nella gestione di blocchi di dimensioni maggiori rispetto alle unità indirette delle unità.
La larghezza di banda di scrittura casuale era coerente su entrambi i sistemi operativi, in particolare nei benchmark a 64K. I risultati migliori e peggiori in questi test differivano solo dello 0,05%, indicando che tutti gli stack di archiviazione erano in grado di sfruttare appieno il potenziale delle unità.
È interessante notare che il kernel Linux 6.8 ha ottenuto la vittoria nei test di larghezza di banda in scrittura sequenziale per dimensioni di blocco di 64K e 128K. Anche se la differenza non è stata drammatica, gli stack di archiviazione open source hanno sovraperformato l'NVMe nativo di Windows Server di circa 2 GiB/s in entrambi i casi.
I risultati della latenza generalmente rispecchiavano le prestazioni del throughput, in particolare nelle medie di lettura casuale. Sfortunatamente per Linux, libaio e io_uring hanno mostrato una latenza più elevata, con il divario maggiore osservato nelle letture casuali di 64K: NVMe nativo di Windows Server aveva una latenza media di 0,207 ms, rispetto ai 0,377 ms di libaio, una differenza di 0,17 ms.
Forse il risultato più sorprendente dei nostri benchmark è la differenza significativa nell'utilizzo della CPU tra Windows Server 2025 e Ubuntu Server 24.04.4 LTS. In 3 benchmark su 4 a lettura casuale e sequenziale, NVMe nativo di Windows Server ha registrato il minor utilizzo della CPU. Il risultato più sorprendente è stato nel test di lettura sequenziale da 128K, in cui Windows ha utilizzato il 27,34% in meno di CPU rispetto a Linux.
Libaio e io_uring hanno ottenuto risultati leggermente migliori nei test di scrittura casuale e sequenziale, ma non abbastanza bene da impedire all'NVMe nativo di Windows Server di vincere 3 benchmark di utilizzo della CPU in scrittura su 4. Un'eccezione degna di nota è stata l'utilizzo della CPU di libaio durante il test 4K di scrittura casuale, che ha raggiunto il 45,76%, molto più alto dell'utilizzo della CPU di circa il 20% osservato con altri stack di archiviazione.
Vincitore vincitore, cena con la CPU
I nostri risultati mostrano che Windows Server e Ubuntu Server funzionano molto bene nei test prestazionali casuali e sequenziali testa a testa su blocchi di diverse dimensioni. In termini di larghezza di banda, Windows Server 2025 con NVMe nativo ha generalmente sovraperformato Linux nella maggior parte dei test di lettura, mentre Linux ha fornito risultati leggermente migliori nei test di scrittura. I dati sulla latenza hanno seguito uno schema simile, ma il vantaggio principale è stata l'efficienza della CPU di Windows Server 2025 quando si utilizzava NVMe nativo.
Microsoft ha chiaramente investito molto nel perfezionamento del suo nuovo stack di archiviazione e, sebbene non vinca in tutte le categorie contro libaio e io_uring, combatte duramente. Questi risultati non sono definitivi per tutti i casi d'uso e le configurazioni dei server, ma forniscono informazioni preziose per gli amministratori dei server che devono decidere se implementare Windows o Linux quando le prestazioni dello storage sono una priorità assoluta, al di sopra della compatibilità del sistema operativo.
Fateci sapere cosa ne pensate di questi risultati commentando sulle nostre piattaforme social o su SR Discord! Ti aspettavi che Windows Server funzionasse così bene o stavi facendo il root per Linux? Ti piacerebbe vedere più distribuzioni Linux o kernel testati? Siamo sempre ansiosi di ricevere il tuo feedback e i test richiesti dai lettori come questo sono spesso i nostri preferiti.
Pechino Qianxing Jietong Technology Co., Ltd.
Sandy Yang/Direttore della strategia globale
WhatsApp/WeChat: +86 13426366826
E-mail: yangyd@qianxingdata.com
Sito Web: www.qianxingdata.com/www.storagesserver.com
Obiettivo aziendale:
Distribuzione prodotti ICT/Integrazione di sistemi e servizi/Soluzioni infrastrutturali
Con oltre 20 anni di esperienza nella distribuzione IT, collaboriamo con marchi leader a livello mondiale per fornire prodotti affidabili e servizi professionali.
"Utilizzare la tecnologia per costruire un mondo intelligente" Il tuo fornitore di servizi di prodotti ICT di fiducia!
Sandy Yang/Direttore della strategia globale
WhatsApp/WeChat: +86 13426366826
E-mail: yangyd@qianxingdata.com
Sito Web: www.qianxingdata.com/www.storagesserver.com
Obiettivo aziendale:
Distribuzione prodotti ICT/Integrazione di sistemi e servizi/Soluzioni infrastrutturali
Con oltre 20 anni di esperienza nella distribuzione IT, collaboriamo con marchi leader a livello mondiale per fornire prodotti affidabili e servizi professionali.
"Utilizzare la tecnologia per costruire un mondo intelligente" Il tuo fornitore di servizi di prodotti ICT di fiducia!



