پس از انتشار مقاله ما در مورد ویژگی NVMe بومی اختیاری مایکروسافت در ویندوز سرور 2025، درخواستهای متعددی برای مقایسه مستقیم عملکرد ذخیرهسازی بین ویندوز سرور 2025 (با پشتیبانی NVMe بومی) و سیستمعامل سرور مبتنی بر لینوکس دریافت کردیم. یکی از کاربران مشتاق ردیت حتی به ما آبجو تعارف کرد تا این تست را انجام دهیم! با چنین تقاضای چشمگیری، چارهای جز اجرای همان مجموعه بنچمارک روی لینوکس نداشتیم تا مقایسه رو در رو را که خوانندگان ما میخواستند، ارائه دهیم.
عملکرد NVMe ویندوز سرور 2025 در مقابل SSD های لینوکس
خیلی وقت پیش، در یک نسخه سیستم عامل دور، دور
لینوکس از نسخه کرنل 3.3 که در مارس 2012 منتشر شد، از NVMe پشتیبانی میکند. به طور مشابه، ویندوز سرور از زمان انتشار R2 2012 در حدود اکتبر 2013، پشتیبانی NVMe (غیربومی، از طریق ترجمه SCSI) را ارائه کرده است. بیش از یک دهه بعد، بحث بر سر اینکه آیا ویندوز یا لینوکس عملکرد ذخیرهسازی بهتری ارائه میدهد، همچنان ادامه دارد و ما با نتایج بنچمارک خود که این دو سیستم عامل را مقایسه میکند، دادههای بیشتری به این گفتگو اضافه میکنیم.
از آنجایی که ما قبلاً نتایج تست برای ویندوز سرور 2025 را با استفاده از پشتههای ذخیرهسازی غیربومی و بومی داشتیم، تصمیم گرفتیم دو پشته ذخیرهسازی محبوب در لینوکس را برای مقایسه منصفانه ارزیابی کنیم. برای بنچمارکهای FIO خود، از libaio و io_uring استفاده کردیم - دو API که به طور گسترده برای تراکنشهای ذخیرهسازی استفاده میشوند. در حالی که io_uring به طور قابل توجهی جدیدتر است و بهبودهای متعددی را برای I/O ناهمزمان ارائه میدهد، libaio به دلیل انعطافپذیری و سهولت استفاده همچنان یک ستون فقرات است (دیدونا، بفرفله، ایوانو، متزلر و تریودی، 2022). تجزیه و تحلیل معماری کامل هر دو پشته فراتر از دامنه این مقاله است، اما ما نتایج جامعی را برای امکان مقایسه مستقیم ارائه میدهیم.
تست NVMe در اوبونتو سرور 24.04.4 LTS
ما از همان پلتفرم سختافزاری برای این مقایسه استفاده کردیم که در مقاله NVMe بومی ویندوز سرور 2025 ما استفاده شد، تا از سازگاری و دقت مقایسههای عملکرد اطمینان حاصل کنیم. سرور مجهز به دو پردازنده AMD EPYC 9754 با 128 هسته، 768 گیگابایت حافظه DDR5 با سرعت 4800 MT/s و پانزده SSD NVMe Solidigm P5316 با ظرفیت 30.72 ترابایت (PCIe 4.0) پیکربندی شده در حالت JBOD است.
همانطور که در مقاله قبلی ما ذکر شد، Solidigm P5316 دارای اندازه واحد غیرمستقیم 64 کیلوبایتی است که اغلب منجر به عملکرد نوشتن کمتر از حد انتظار برای اندازههای بلوک کوچکتر (مانند تستهای 4K) میشود. برای ارائه یک دیدگاه جامع، ما تستهایی را با اندازههای بلوک 4K، 64K و 128K اجرا کردیم و عملیات خواندن و نوشتن را در تمام پیکربندیها اندازهگیری کردیم.
ما اوبونتو سرور 24.04.4 LTS را به دلیل محبوبیت گسترده و وضعیت پشتیبانی طولانی مدت (LTS) به عنوان نماینده لینوکس خود انتخاب کردیم. این سیستم عامل به طور پیشفرض با کرنل لینوکس 6.8 عرضه میشود - در حالی که جدیدترین نسخه موجود نیست، این نسخه کرنل به احتمال زیاد بخش بزرگی از نصبهای سرور لینوکس در دنیای واقعی را در سطح جهانی نشان میدهد.
نکات برجسته
-
ویندوز سرور 2025 (NVMe بومی) در 3 مورد از 4 بنچمارک عملکرد خواندن، از اوبونتو بهتر عمل میکند
-
ویندوز به طور مداوم در اکثر تستها مصرف CPU کمتری نشان داد
-
اوبونتو سرور 24.04.4 LTS در 3 مورد از 4 بنچمارک عملکرد نوشتن برنده میشود
نتایج بنچمارک
عملکرد خواندن تصادفی
|
متریک
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
اندازه بلوک
|
تصادفی 4K
|
تصادفی 64K
|
||||||
|
پهنای باند (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
|
|
میانگین تأخیر (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
|
عملکرد خواندن ترتیبی
|
متریک
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
اندازه بلوک
|
ترتیبی 64K
|
ترتیبی 128K
|
||||||
|
پهنای باند (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
|
|
میانگین تأخیر (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
|
عملکرد نوشتن تصادفی
|
متریک
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
اندازه بلوک
|
تصادفی 4K
|
تصادفی 64K
|
||||||
|
پهنای باند (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
|
|
میانگین تأخیر (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
|
عملکرد نوشتن ترتیبی
|
متریک
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
ویندوز غیر بومی
|
ویندوز بومی
|
لینوکس libaio
|
لینوکس io_uring
|
|---|---|---|---|---|---|---|---|---|
|
اندازه بلوک
|
ترتیبی 64K
|
ترتیبی 128K
|
||||||
|
پهنای باند (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
|
|
میانگین تأخیر (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 لینوکس ما به دلیل تفاوت در گزارش FIO بین ویندوز سرور 2025 و اوبونتو سرور 24.04.4 LTS به نزدیکترین هزار گرد شده است. نتایج پهنای باند، تأخیر و مصرف CPU در هر دو پلتفرم به طور مداوم گرد شدهاند.
اعداد دروغ نمیگویند
بنچمارکهای ما به وضوح نشان میدهند که اوبونتو در هر دستهای از ویندوز بهتر عمل نمیکند. در حالی که libaio و io_uring توان عملی بالایی را در تستهای خواندن تصادفی ارائه دادند، نتوانستند با عملکرد پشته NVMe بومی مایکروسافت مطابقت داشته باشند. کرنل NT ویندوز در تستهای خواندن تصادفی 64K ما تقریباً 17% بهتر از کرنل لینوکس عمل کرد، به طوری که NVMe بومی ویندوز به سرعت 91.165 گیگابایت بر ثانیه در مقابل بهترین سرعت io_uring یعنی 77.7 گیگابایت بر ثانیه دست یافت.
با این حال، لینوکس بدون پیروزی نیست. اوبونتو سرور در یک بنچمارک عملکرد خواندن، یعنی تست ترتیبی 128K، از ویندوز سرور پیشی گرفت. در اینجا، libaio لینوکس با سرعت 97.05 گیگابایت بر ثانیه در مقایسه با NVMe بومی ویندوز با سرعت 92.562 گیگابایت بر ثانیه - تفاوتی حدود 5% - بهترین عملکرد را داشت. این نشان میدهد که لینوکس ممکن است هنگام مدیریت اندازههای بلوک بزرگتر از واحدهای غیرمستقیم درایوها، مزیت جزئی داشته باشد.
پهنای باند نوشتن تصادفی در هر دو سیستم عامل، به ویژه در بنچمارکهای 64K، سازگار بود. بهترین و بدترین نتایج در این تستها تنها 0.05% تفاوت داشتند، که نشان میدهد تمام پشتههای ذخیرهسازی قادر به استفاده کامل از پتانسیل درایوها بودند.
جالب اینجاست که کرنل لینوکس 6.8 در تستهای پهنای باند نوشتن ترتیبی برای اندازههای بلوک 64K و 128K پیروز شد. در حالی که تفاوت چشمگیر نبود، پشتههای ذخیرهسازی متنباز در هر دو مورد تقریباً 2 گیگابایت بر ثانیه بهتر از NVMe بومی ویندوز سرور عمل کردند.
نتایج تأخیر به طور کلی عملکرد توان عملی را منعکس میکرد، به ویژه در میانگین خواندن تصادفی. متأسفانه برای لینوکس، libaio و io_uring تأخیر بیشتری نشان دادند، با بیشترین شکاف مشاهده شده در خواندن تصادفی 64K: NVMe بومی ویندوز سرور دارای میانگین تأخیر 0.207 میلیثانیه بود، در مقایسه با 0.377 میلیثانیه libaio - تفاوتی 0.17 میلیثانیه.
شاید شگفتانگیزترین یافته از بنچمارکهای ما، تفاوت قابل توجه در مصرف CPU بین ویندوز سرور 2025 و اوبونتو سرور 24.04.4 LTS باشد. در 3 مورد از 4 بنچمارک خواندن تصادفی و ترتیبی، NVMe بومی ویندوز سرور کمترین مصرف CPU را داشت. چشمگیرترین نتیجه در تست خواندن ترتیبی 128K بود، جایی که ویندوز 27.34% کمتر از لینوکس CPU مصرف کرد.
Libaio و io_uring در تستهای نوشتن تصادفی و ترتیبی کمی بهتر عمل کردند، اما نه به اندازهای که از پیروزی NVMe بومی ویندوز سرور در 3 مورد از 4 بنچمارک مصرف CPU نوشتن جلوگیری کند. یک استثنای قابل توجه، مصرف CPU libaio در طول تست نوشتن تصادفی 4K بود که به 45.76% رسید - بسیار بالاتر از مصرف حدود 20% CPU که در پشتههای ذخیرهسازی دیگر دیده میشد.
برنده، برنده، شام CPU
نتایج ما نشان میدهد که ویندوز سرور و اوبونتو سرور در تستهای عملکرد تصادفی و ترتیبی رو در رو در اندازههای مختلف بلوک عملکرد نزدیکی دارند. از نظر پهنای باند، ویندوز سرور 2025 با NVMe بومی به طور کلی در اکثر تستهای خواندن از لینوکس بهتر عمل کرد، در حالی که لینوکس نتایج کمی بهتری را در تستهای نوشتن ارائه داد. ارقام تأخیر الگوی مشابهی را دنبال میکردند، اما مزیت برجسته، کارایی CPU ویندوز سرور 2025 هنگام استفاده از NVMe بومی بود.
مایکروسافت به وضوح سرمایهگذاری زیادی در اصلاح جدیدترین پشته ذخیرهسازی خود انجام داده است و در حالی که در هر دستهای در برابر libaio و io_uring برنده نمیشود، مبارزه قویای را ارائه میدهد. این نتایج در تمام موارد استفاده و پیکربندیهای سرور قطعی نیستند، اما بینشهای ارزشمندی را برای مدیران سرور که تصمیم میگیرند آیا ویندوز یا لینوکس را هنگام اولویت قرار دادن عملکرد ذخیرهسازی - بالاتر از سازگاری سیستم عامل - مستقر کنند، ارائه میدهند.
به ما اطلاع دهید که در مورد این نتای



