Μετά τη δημοσίευση του άρθρου μας σχετικά με το εγγενές χαρακτηριστικό NVMe της Microsoft για Windows Server 2025,λάβαμε πολλά αιτήματα για μια άμεση σύγκριση επιδόσεων αποθήκευσης μεταξύ των Windows Server 2025 (με εγγενή υποστήριξη NVMe) και ενός λειτουργικού συστήματος διακομιστή με βάση το LinuxΈνας ιδιαίτερα ενθουσιώδης χρήστης του Reddit μας πρόσφερε μάλιστα μπύρα για να κάνουμε το τεστ!Δεν είχαμε άλλη επιλογή από το να τρέξουμε την ίδια σουίτα αναφοράς στο Linux για να προσφέρουμε την head-to-head σύγκριση που ήθελαν οι αναγνώστες μας..
Windows Server 2025 NVMe έναντι SSD απόδοσης Linux
Πριν από πολύ καιρό, σε μια έκδοση του λειτουργικού, πολύ, πολύ μακριά.
Το Linux υποστηρίζει το NVMe από την έκδοση 3 του πυρήνα.3Παρόμοια, το Windows Server έχει προσφέρει υποστήριξη NVMe (μη εγγενώς, μέσω μετάφρασης SCSI) από την έκδοση 2012 R2 περίπου τον Οκτώβριο του 2013. the debate over whether Windows or Linux delivers better storage performance still rages on—and we’re adding more data to the conversation with our benchmark results comparing the two operating systems.
Δεδομένου ότι είχαμε ήδη αποτελέσματα δοκιμών για το Windows Server 2025 χρησιμοποιώντας τόσο μη εγγενείς όσο και εγγενείς στοιβάδες αποθήκευσης, αποφασίσαμε να αξιολογήσουμε δύο δημοφιλείς στοιβάδες αποθήκευσης στο Linux για μια δίκαιη σύγκριση.Για τους δείκτες αναφοράς FIO, χρησιμοποιήσαμε το libaio και το io_uring, δύο από τα πιο ευρέως χρησιμοποιούμενα API για συναλλαγές αποθήκευσης.Το libaio παραμένει βασικό προϊόν λόγω της ευελιξίας και της ευκολίας χρήσης του (Didona, Pfefferle, Ioannou, Metzler, & Trivedi, 2022). Μια πλήρης αρχιτεκτονική διάσπαση και των δύο στοιβάδων είναι πέρα από το πεδίο εφαρμογής αυτού του άρθρου,αλλά παρέχουμε ολοκληρωμένα αποτελέσματα για να επιτρέψουμε άμεση παράλληλη σύγκριση.
Δοκιμάζω το NVMe στον Ubuntu Server 24.04.4 LTS
Χρησιμοποιήσαμε την ίδια πλατφόρμα υλικού για αυτή τη σύγκριση όπως και στο εγγενές άρθρο NVMe του Windows Server 2025, εξασφαλίζοντας συνέπεια και ακριβείς συγκρίσεις απόδοσης.Ο διακομιστής είναι εξοπλισμένος με δύο 128-core CPUs AMD EPYC 9754, 768GB μνήμης DDR5 που λειτουργεί με 4800 MT / s και δεκαπέντε SSD Solidigm P5316 NVMe (PCIe 4.0) 30,72 TB που έχουν ρυθμιστεί σε λειτουργία JBOD.
Όπως αναφέρθηκε στο προηγούμενο άρθρο μας, το Solidigm P5316 έχει μέγεθος μονάδας έμμεσης επεξεργασίας 64 kilobyte, το οποίο συχνά οδηγεί σε χαμηλότερη από την αναμενόμενη απόδοση εγγραφής για μικρότερα μεγέθη μπλοκ (όπως δοκιμές 4K).Για να παρέχει μια συνολική εικόνα, κάναμε δοκιμές με μεγέθη τεμαχίων 4K, 64K και 128K, μετρώντας τις λειτουργίες ανάγνωσης και εγγραφής σε όλες τις διαμορφώσεις.
Επιλέξαμε το Ubuntu Server 24.04.4 LTS ως αντιπρόσωπός μας του Linux λόγω της ευρείας δημοτικότητάς του και της μακροχρόνιας υποστήριξης (LTS).Αυτή η έκδοση του πυρήνα πιθανότατα αντιπροσωπεύει ένα μεγάλο μέρος των πραγματικών παγκοσμίως εγκαταστάσεων διακομιστών Linux..
Σημαντικά σημεία
-
Το Windows Server 2025 (native NVMe) ξεπερνά το Ubuntu σε 3 από τα 4 κριτήρια απόδοσης ανάγνωσης
-
Το Windows Server παρουσίασε σταθερά χαμηλότερη χρήση CPU κατά τις περισσότερες δοκιμές
-
Διακομιστής Ubuntu 24.04.4 Η LTS κερδίζει σε 3 από τα 4 κριτήρια αναφοράς επιδόσεων γραφής
Αποτελέσματα αναφοράς
Τυχαίο αποτέλεσμα ανάγνωσης
|
Μετρική
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ io_uring
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Μέγεθος μπλοκ
|
Τυχαίο 4K
|
Τυχαίο 64K
|
||||||
|
Διάφραση (GiB/s)
|
6.1
|
10.058
|
9.198
|
9.504
|
74.291
|
91.165
|
77.517
|
77.7
|
|
Εγγυητικό δάνειο
|
1,598,959
|
2,636,516
|
2,411,000
|
2,491,000
|
1,217,176
|
1,493,637
|
1,270,000
|
1,273,000
|
|
Μέση καθυστέρηση (ms)
|
0.169
|
0.104
|
0.198
|
0.192
|
0.239
|
0.207
|
0.377
|
0.376
|
|
Συνολική χρήση CPU (%)
|
72.67
|
74.22
|
99.77
|
99.76
|
68.44
|
65.11
|
83.16
|
84.72
|
Συνεχόμενη απόδοση ανάγνωσης
|
Μετρική
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ i_uring
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ i_uring
|
|---|---|---|---|---|---|---|---|---|
|
Μέγεθος μπλοκ
|
Ακολουθική 64K
|
128K κατά σειρά
|
||||||
|
Διάφραση (GiB/s)
|
35.596
|
35.623
|
31.867
|
31.433
|
86.791
|
92.562
|
97.05
|
97
|
|
Εγγυητικό δάνειο
|
583,192
|
583,638
|
522,000
|
515,000
|
710,978
|
758,252
|
795,000
|
795,000
|
|
Μέση καθυστέρηση (ms)
|
0.809
|
0.812
|
0.919
|
0.932
|
0.613
|
0.608
|
0.603
|
0.604
|
|
Συνολική χρήση CPU (%)
|
44.89
|
37.11
|
53.94
|
41.74
|
61.56
|
49.56
|
75.14
|
76.90
|
Δυνατότητα τυχαίας εγγραφής
|
Μετρική
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ io_uring
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ io_uring
|
|---|---|---|---|---|---|---|---|---|
|
Μέγεθος μπλοκ
|
Τυχαίο 4K
|
Τυχαίο 64K
|
||||||
|
Διάφραση (GiB/s)
|
1.803
|
1.756
|
1.876
|
1.815
|
7.654
|
7.655
|
7.652
|
7.651
|
|
Εγγυητικό δάνειο
|
472,725
|
460,383
|
492,000
|
476,000
|
125,391
|
125,406
|
125,000
|
125,000
|
|
Μέση καθυστέρηση (ms)
|
0.992
|
1.028
|
0.974
|
1.007
|
3.814
|
3.816
|
3.827
|
3.828
|
|
Συνολική χρήση CPU (%)
|
26.00
|
20.67
|
45.76
|
22.80
|
12.22
|
9.33
|
20.07
|
10.90
|
Συνεχόμενη απόδοση εγγραφής
|
Μετρική
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ i_uring
|
Windows μη εγγενής
|
Windows Native
|
Linux libaio
|
Λίνουξ i_uring
|
|---|---|---|---|---|---|---|---|---|
|
Μέγεθος μπλοκ
|
Ακολουθική 64K
|
128K κατά σειρά
|
||||||
|
Διάφραση (GiB/s)
|
44.67
|
50.087
|
52.283
|
52.25
|
50.477
|
50.079
|
52
|
52.083
|
|
Εγγυητικό δάνειο
|
731,859
|
820,603
|
856,000
|
856,000
|
413,495
|
410,232
|
426,000
|
427,000
|
|
Μέση καθυστέρηση (ms)
|
0.399
|
0.558
|
0.560
|
0.560
|
1.022
|
1.149
|
1.126
|
1.125
|
|
Συνολική χρήση CPU (%)
|
70.44
|
57.78
|
61.88
|
62.75
|
58.44
|
47.33
|
61.49
|
44.27
|
Σημείωση: Τα αποτελέσματα των IOPS του Linux στρογγυλοποιούνται στο πλησιέστερο χίλιό λόγω των διαφορών στις αναφορές FIO μεταξύ του Windows Server 2025 και του Ubuntu Server 24.04Τα αποτελέσματα εύρους ζώνης, καθυστέρησης και χρήσης CPU στρογγυλοποιούνται με συνέπεια και στις δύο πλατφόρμες.
Οι αριθμοί δεν λένε ψέματα
Τα κριτήρια αναφοράς μας καθιστούν σαφές ότι το Ubuntu δεν ξεπερνά τα Windows σε κάθε κατηγορία.δεν μπορούσαν να ταιριάξουν με τις επιδόσεις της εγγενούς στοίβας NVMe της MicrosoftΟ πυρήνας Windows NT ξεπέρασε τον πυρήνα Linux κατά περίπου 17% στις τυχαίες δοκιμές αναγνώρισης 64K, με το Windows native NVMe να επιτυγχάνει 91.165 GiB/s έναντι 77.7 GiB/s.
Ωστόσο, το Linux δεν είναι χωρίς τις νίκες του. Ο διακομιστής Ubuntu ξεπέρασε απότομα τον διακομιστή Windows σε ένα σημείο αναφοράς απόδοσης ανάγνωσης: το διαδοχικό τεστ 128K. Εδώ, το libaio του Linux παρουσιάζει τις καλύτερες επιδόσεις σε 97.05 GiB / s.,Σε σύγκριση με το Windows® native NVMe με 92.562 GiB/s, η διαφορά είναι περίπου 5%. Αυτό υποδηλώνει ότι το Linux μπορεί να έχει ένα ελαφρύ πλεονέκτημα κατά τη διαχείριση μεγεθών τεμαχίων μεγαλύτερων από τις μονάδες έμμεσης επεξεργασίας.
Τα καλύτερα και τα χειρότερα αποτελέσματα σε αυτές τις δοκιμές διαφέρουν μόνο κατά 0,05%,που δείχνει ότι όλες οι στοίβες αποθήκευσης ήταν σε θέση να αξιοποιήσουν πλήρως τις δυνατότητες των μονάδων.
Είναι ενδιαφέρον ότι ο πυρήνας του Linux 6.8 διεκδίκησε τη νίκη σε διαδοχικές δοκιμές εύρους ζώνης γραφής για 64K και 128K μεγέθη μπλοκ.οι συσσωρευτές αποθήκευσης ανοιχτού κώδικα ξεπέρασαν τις performances των native NVMe του Windows Server με περίπου 2 GiB/s και στις δύο περιπτώσεις.
Δυστυχώς για το Linux, το libaio και το io_uring παρουσίασαν υψηλότερη καθυστέρηση.με το μεγαλύτερο κενό που παρατηρείται σε 64K τυχαίες αναγνώσειςΗ NVMe του Windows Server είχε μέση καθυστέρηση 0,207 ms, σε σύγκριση με τη λιβύη 0,377 ms, με διαφορά 0,17 ms.
Ίσως το πιο εκπληκτικό εύρημα από τα κριτήρια αναφοράς μας είναι η σημαντική διαφορά στη χρήση CPU μεταξύ του Windows Server 2025 και του Ubuntu Server 24.04.4 LTS. Σε 3 από τα 4 δείγματα αναφοράς τυχαίας και διαδοχικής ανάγνωσης, το Windows Server NVMe είχε τη χαμηλότερη χρήση CPU.34% λιγότερη CPU από το Linux.
Το Libaio και το io_uring παρουσίασαν ελαφρώς καλύτερες επιδόσεις σε τυχαίες και διαδοχικές δοκιμές εγγραφής, αλλά όχι αρκετά καλά για να εμποδίσουν το native NVMe του Windows Server να κερδίσει 3 από τα 4 benchmarks χρήσης CPU εγγραφής.Μια αξιοσημείωτη εξαίρεση ήταν η χρήση CPU του libaio κατά τη διάρκεια της τυχαίας δοκιμής γραφής 4K, η οποία έφτασε το 45,76% ̇ πολύ υψηλότερο από την ~ 20% χρήση CPU που παρατηρήθηκε με άλλες στοίβες αποθήκευσης.
Κερδιστής Κερδιστής, CPU δείπνο
Τα αποτελέσματά μας δείχνουν ότι το Windows Server και το Ubuntu Server εκτελούν στενά σε head-to-head τυχαίες και διαδοχικές δοκιμές απόδοσης σε διαφορετικά μεγέθη μπλοκ.Το Windows Server 2025 με native NVMe γενικά ξεπέρασε το Linux στις περισσότερες δοκιμές ανάγνωσηςΟι αριθμοί καθυστέρησης ακολούθησαν παρόμοιο μοτίβο, αλλά το ξεχωριστό πλεονέκτημα ήταν η απόδοση του CPU του Windows Server 2025 όταν χρησιμοποιείται το native NVMe.
Η Microsoft έχει ξεκάθαρα επενδύσει σε μεγάλο βαθμό για να βελτιώσει την πιο πρόσφατη συστοιχία αποθήκευσης, και ενώ δεν κερδίζει σε κάθε κατηγορία ενάντια στο libaio και το io_uring, παλεύει δυναμικά.Αυτά τα αποτελέσματα δεν είναι οριστικά σε όλες τις περιπτώσεις χρήσης και τις διαμορφώσεις διακομιστών, αλλά παρέχουν πολύτιμες γνώσεις για τους διαχειριστές διακομιστών που αποφασίζουν αν θα αναπτύξουν Windows ή Linux όταν η απόδοση αποθήκευσης είναι κορυφαία προτεραιότητα πάνω από τ



