بعد نشر مقالتنا حول ميزة NVMe الأصلية التي تم الاشتراك بها من Microsoft على Windows Server 2025، تلقينا العديد من الطلبات لإجراء مقارنة مباشرة لأداء التخزين بين Windows Server 2025 (مع دعم NVMe الأصلي) ونظام تشغيل خادم يستند إلى Linux. حتى أن أحد مستخدمي Redditor المتحمسين عرض علينا البيرة لإجراء الاختبار! مع هذا الطلب الهائل، لم يكن لدينا خيار سوى تشغيل مجموعة المعايير نفسها على Linux لتقديم المقارنة المباشرة التي أرادها قراؤنا.
أداء Windows Server 2025 NVMe مقابل أداء Linux
منذ وقت طويل، في إصدار نظام التشغيل Far، Far Away
يدعم Linux NVMe منذ إصدار kernel 3.3، الذي تم إصداره في مارس 2012. وبالمثل، قدم Windows Server دعم NVMe (بشكل غير أصلي، عبر ترجمة SCSI) منذ إصدار 2012 R2 في أكتوبر 2013 تقريبًا. وبعد مرور أكثر من عقد من الزمن، لا يزال الجدل مستمرًا حول ما إذا كان Windows أو Linux يقدم أداء تخزين أفضل - ونحن نضيف المزيد من البيانات إلى المحادثة مع نتائجنا المعيارية التي تقارن نظامي التشغيل.
نظرًا لأننا حصلنا بالفعل على نتائج اختبار لنظام التشغيل Windows Server 2025 باستخدام مجموعات تخزين أصلية وغير أصلية، فقد قررنا تقييم مجموعتي تخزين شائعتين على Linux لإجراء مقارنة عادلة. بالنسبة لمعايير FIO الخاصة بنا، استخدمنا libaio وio_uring — وهما من واجهات برمجة التطبيقات الأكثر استخدامًا لمعاملات التخزين. على الرغم من أن io_uring أحدث بشكل ملحوظ ويقدم العديد من التحسينات للإدخال/الإخراج غير المتزامن، إلا أن libaio يظل عنصرًا أساسيًا نظرًا لمرونته وسهولة استخدامه (Didona, Pfefferle, Ioannou, Metzler, & Trivedi, 2022). إن التقسيم المعماري الكامل لكلا المجموعتين يقع خارج نطاق هذه المقالة، ولكننا نقدم نتائج شاملة لتمكين المقارنة المباشرة جنبًا إلى جنب.
اختبار NVMe على Ubuntu Server 24.04.4 LTS
لقد استخدمنا نفس النظام الأساسي للأجهزة لإجراء هذه المقارنة كما هو الحال في مقالة NVMe الأصلية لنظام التشغيل Windows Server 2025، مما يضمن الاتساق ومقارنات الأداء الدقيقة. تم تجهيز الخادم بوحدتي معالجة مركزية AMD EPYC 9754 ذات 128 نواة، وذاكرة DDR5 سعة 768 جيجابايت تعمل بسرعة 4800 MT/s، وخمسة عشر محرك أقراص Solidigm P5316 NVMe SSD بسعة 30.72 تيرابايت (PCIe 4.0) تم تكوينها في وضع JBOD.
كما هو مذكور في مقالتنا السابقة، يحتوي Solidigm P5316 على حجم وحدة غير اتجاهية يبلغ 64 كيلو بايت، مما يؤدي غالبًا إلى أداء كتابة أقل من المتوقع لأحجام الكتل الأصغر (مثل اختبارات 4K). ولتوفير رؤية شاملة، أجرينا اختبارات بأحجام كتل تبلغ 4K و64K و128K، وقياس عمليات القراءة والكتابة عبر جميع التكوينات.
لقد اخترنا Ubuntu Server 24.04.4 LTS ليكون ممثل Linux الخاص بنا نظرًا لشعبيته الواسعة وحالة الدعم طويل الأمد (LTS). يأتي مع Linux kernel 6.8 افتراضيًا - على الرغم من أنه ليس الإصدار الأحدث المتوفر، فمن المحتمل أن يمثل إصدار kernel هذا جزءًا كبيرًا من عمليات تثبيت خادم Linux في العالم الحقيقي على مستوى العالم.
أبرز
-
يتفوق Windows Server 2025 (NVMe الأصلي) على Ubuntu في 3 من أصل 4 معايير أداء للقراءة
-
أظهر Windows Server باستمرار استخدامًا أقل لوحدة المعالجة المركزية أثناء معظم الاختبارات
-
يفوز Ubuntu Server 24.04.4 LTS بثلاثة من أصل أربعة معايير لأداء الكتابة
النتائج المعيارية
أداء القراءة العشوائية
|
متري
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
حجم الكتلة
|
عشوائية 4K
|
عشوائية 64K
|
||||||
|
عرض النطاق الترددي (جيجابايت/ثانية)
|
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
|
|
متوسط الكمون (ملي ثانية)
|
0.169
|
0.104
|
0.198
|
0.192
|
0.239
|
0.207
|
0.377
|
0.376
|
|
إجمالي استخدام وحدة المعالجة المركزية (%)
|
72.67
|
74.22
|
99.77
|
99.76
|
68.44
|
65.11
|
83.16
|
84.72
|
أداء القراءة المتسلسل
|
متري
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
حجم الكتلة
|
متسلسل 64 كيلو
|
متسلسل 128 كيلو
|
||||||
|
عرض النطاق الترددي (جيجابايت/ثانية)
|
35.596
|
35.623
|
31.867
|
31.433
|
86.791
|
92.562
|
97.05
|
97
|
|
IOPS
|
583,192
|
583,638
|
522000
|
515000
|
710,978
|
758,252
|
795000
|
795000
|
|
متوسط الكمون (ملي ثانية)
|
0.809
|
0.812
|
0.919
|
0.932
|
0.613
|
0.608
|
0.603
|
0.604
|
|
إجمالي استخدام وحدة المعالجة المركزية (%)
|
44.89
|
37.11
|
53.94
|
41.74
|
61.56
|
49.56
|
75.14
|
76.90
|
أداء الكتابة العشوائية
|
متري
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
حجم الكتلة
|
عشوائية 4K
|
عشوائية 64K
|
||||||
|
عرض النطاق الترددي (جيجابايت/ثانية)
|
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
|
|
متوسط الكمون (ملي ثانية)
|
0.992
|
1.028
|
0.974
|
1.007
|
3.814
|
3.816
|
3.827
|
3.828
|
|
إجمالي استخدام وحدة المعالجة المركزية (%)
|
26.00
|
20.67
|
45.76
|
22.80
|
12.22
|
9.33
|
20.07
|
10.90
|
أداء الكتابة المتسلسل
|
متري
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
ويندوز غير أصلي
|
ويندوز الأصلي
|
لينكس ليبايو
|
لينكس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
حجم الكتلة
|
متسلسل 64 كيلو
|
متسلسل 128 كيلو
|
||||||
|
عرض النطاق الترددي (جيجابايت/ثانية)
|
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
|
|
متوسط الكمون (ملي ثانية)
|
0.399
|
0.558
|
0.560
|
0.560
|
1.022
|
1.149
|
1.126
|
1.125
|
|
إجمالي استخدام وحدة المعالجة المركزية (%)
|
70.44
|
57.78
|
61.88
|
62.75
|
58.44
|
47.33
|
61.49
|
44.27
|
ملاحظة: تم تقريب نتائج Linux IOPS إلى أقرب ألف بسبب الاختلافات في تقارير FIO بين Windows Server 2025 وUbuntu Server 24.04.4 LTS. يتم تقريب نتائج النطاق الترددي وزمن الوصول واستخدام وحدة المعالجة المركزية بشكل متسق عبر كلا النظامين الأساسيين.
الأرقام لا تكذب
توضح معاييرنا أن Ubuntu لا يتفوق على Windows في كل فئة. في حين أن libaio وio_uring قدموا إنتاجية قوية في اختبارات القراءة العشوائية، إلا أنهم لم يتمكنوا من مطابقة أداء مكدس NVMe الأصلي من Microsoft. تفوق أداء نواة Windows NT على نواة Linux بنسبة 17% تقريبًا في اختبارات القراءة العشوائية التي تبلغ 64 كيلو بايت، حيث حقق NVMe الأصلي لنظام التشغيل Windows 91.165 جيجا بايت/ثانية مقابل أفضل ما حققه io_uring وهو 77.7 جيجا بايت/ثانية.
ومع ذلك، فإن Linux لا يخلو من الانتصارات. تفوق Ubuntu Server على Windows Server بفارق ضئيل في معيار أداء قراءة واحد: اختبار 128 كيلو بايت المتسلسل. هنا، كان أداء Linux libaio أفضل عند 97.05 جيجا بايت/ ثانية، مقارنة بـ NVMe الأصلي لنظام Windows عند 92.562 جيجا بايت/ ثانية — بفارق حوالي 5%. يشير هذا إلى أن Linux قد يتمتع بميزة طفيفة عند إدارة أحجام الكتل الأكبر من وحدات الاتجاه غير المباشر لمحركات الأقراص.
كان النطاق الترددي للكتابة العشوائية متسقًا عبر كلا نظامي التشغيل، خاصة في معايير 64 كيلو بايت. وقد اختلفت أفضل وأسوأ النتائج في هذه الاختبارات بنسبة 0.05% فقط، مما يشير إلى أن جميع مجموعات التخزين كانت قادرة على الاستفادة الكاملة من إمكانات محركات الأقراص.
ومن المثير للاهتمام أن نواة Linux 6.8 حققت النصر في اختبارات النطاق الترددي للكتابة المتسلسلة لأحجام الكتل 64 كيلو بايت و128 كيلو بايت. على الرغم من أن الاختلاف لم يكن كبيرًا، إلا أن مكدسات التخزين مفتوحة المصدر تفوقت على NVMe الأصلي لـ Windows Server بحوالي 2 جيجا بايت/ثانية في كلتا الحالتين.
تعكس نتائج زمن الوصول بشكل عام أداء الإنتاجية، وعلى الأخص في متوسطات القراءة العشوائية. لسوء الحظ بالنسبة لنظام التشغيل Linux، أظهر libaio وio_uring زمن استجابة أعلى، مع أكبر فجوة شوهدت في 64 ألف قراءة عشوائية: كان لدى NVMe الأصلي لـ Windows Server متوسط زمن وصول يبلغ 0.207 مللي ثانية، مقارنة بـ libaio البالغ 0.377 مللي ثانية - بفارق 0.17 مللي ثانية.
ولعل النتيجة الأكثر إثارة للدهشة من معاييرنا هي الاختلاف الكبير في استخدام وحدة المعالجة المركزية بين Windows Server 2025 وUbuntu Server 24.04.4 LTS. في 3 من أصل 4 معايير قراءة عشوائية ومتسلسلة، كان NVMe الأصلي لنظام التشغيل Windows Server هو الأقل استخدامًا لوحدة المعالجة المركزية. وكانت النتيجة الأكثر لفتًا للانتباه هي اختبار القراءة التسلسلية 128 كيلو بايت، حيث استخدم Windows وحدة معالجة مركزية أقل بنسبة 27.34% من Linux.
كان أداء Libaio وio_uring أفضل قليلاً في اختبارات الكتابة العشوائية والمتسلسلة، لكن ليس جيدًا بما يكفي لمنع NVMe الأصلي لـ Windows Server من الفوز بـ 3 من أصل 4 معايير لاستخدام وحدة المعالجة المركزية للكتابة. كان الاستثناء الملحوظ هو استخدام وحدة المعالجة المركزية الخاصة بـ libaio أثناء اختبار الكتابة العشوائية بدقة 4K، والذي وصل إلى 45.76%، وهو أعلى بكثير من استخدام وحدة المعالجة المركزية بنسبة 20% تقريبًا مع مجموعات التخزين الأخرى.
الفائز الفائز، عشاء وحدة المعالجة المركزية
تظهر نتائجنا أن Windows Server وUbuntu Server يعملان بشكل وثيق في اختبارات الأداء العشوائية والمتسلسلة عبر أحجام الكتل المختلفة. فيما يتعلق بعرض النطاق الترددي، تفوق Windows Server 2025 مع NVMe الأصلي بشكل عام على Linux في معظم اختبارات القراءة، بينما قدم Linux نتائج أفضل قليلاً في اختبارات الكتابة. اتبعت أرقام زمن الاستجابة نمطًا مشابهًا، ولكن الميزة البارزة كانت كفاءة وحدة المعالجة المركزية لنظام التشغيل Windows Server 2025 عند استخدام NVMe الأصلي.
من الواضح أن Microsoft قد استثمرت بكثافة في تحسين أحدث مجموعة تخزينية لديها، وعلى الرغم من أنها لا تفوز بكل فئة ضد libaio وio_uring، إلا أنها تخوض معركة قوية. هذه النتائج ليست نهائية عبر جميع حالات الاستخدام وتكوينات الخادم، ولكنها توفر رؤى قيمة لمسؤولي الخادم الذين يقررون ما إذا كانوا يريدون نشر Windows أو Linux عندما يكون أداء التخزين أولوية قصوى — فوق توافق نظام ال



