Bài viết

So sánh hiệu năng NVMe: Windows Server 2025 và Ubuntu Server 24.04.4 LTS

So sánh hiệu năng NVMe: Windows Server 2025 và Ubuntu Server 24.04.4 LTS

Sau khi xuất bản bài viết của chúng tôi về tính năng NVMe gốc (native NVMe) tùy chọn của Microsoft trên Windows Server 2025, chúng tôi đã nhận được nhiều yêu cầu so sánh trực tiếp hiệu năng lưu trữ giữa Windows Server 2025 sử dụng NVMe gốc và một hệ điều hành máy chủ dựa trên Linux. Một người dùng Reddit đặc biệt nhiệt tình thậm chí còn mời chúng tôi bia để thực hiện việc này! Vì rõ ràng là không có lựa chọn hợp lý nào khác, chúng tôi đã quyết định chạy các thử nghiệm tương tự trên Linux.

Windows Server 2025 NVMe vs Linux performance ssds

Ngày xửa ngày xưa, ở một phiên bản hệ điều hành rất xa…

Nhân Linux đã hỗ trợ NVMe kể từ phiên bản 3.3, được phát hành vào tháng 3 năm 2012. Tương tự, giao thức này đã được hỗ trợ trên Windows Server (không phải dạng gốc, mà thông qua chuyển dịch SCSI) kể từ phiên bản 2012 R2, khoảng tháng 10 năm 2013. Hơn một thập kỷ sau, người dùng vẫn đang tranh luận liệu Windows hay Linux tốt hơn cho việc lưu trữ, vì vậy chúng tôi nghĩ mình sẽ thêm chút dầu vào lửa bằng các kết quả thử nghiệm so sánh giữa hai hệ điều hành.

Vì đã có kết quả thử nghiệm cho Windows Server 2025 sử dụng cả ngăn xếp lưu trữ không gốc và gốc, chúng tôi nghĩ việc đánh giá hai ngăn xếp lưu trữ trên Linux là phù hợp. Đối với các bài thử nghiệm FIO của mình, chúng tôi đã sử dụng cả libaio và io_uring, hai trong số các API phổ biến nhất cho các giao dịch lưu trữ. Mặc dù io_uring mới hơn đáng kể và cung cấp nhiều cải tiến cho I/O bất đồng bộ, libaio vẫn được sử dụng rộng rãi nhờ tính linh hoạt và dễ sử dụng (Didona, Pfefferle, Ioannou, Metzler, & Trivedi, 2022). Việc tổng quan toàn bộ kiến trúc cho cả hai ngăn xếp nằm ngoài phạm vi của bài viết này, nhưng chúng tôi vẫn cung cấp kết quả để so sánh trực tiếp.

Dưới đây là bản dịch tiếng Việt, rõ nghĩa, giữ nguyên bố cục và không thêm nội dung:

Thử nghiệm NVMe trên Ubuntu Server 24.04.4 LTS

Nền tảng phần cứng của chúng tôi cho bài so sánh này là cùng một máy chủ được sử dụng trong bài viết về NVMe gốc trên Windows Server 2025. Để đảm bảo băng thông tối đa và kết quả nhất quán, máy chủ được trang bị hai bộ xử lý AMD EPYC 9754 128 lõi, 768GB bộ nhớ DDR5 tốc độ 4800 MT/s, và mười lăm ổ cứng SSD NVMe Solidigm P5316 dung lượng 30,72 TB với giao tiếp PCIe 4.0 trong cấu hình JBOD.

Như chúng tôi đã đề cập trong bài viết trước, ổ Solidigm P5316 có kích thước đơn vị gián tiếp (indirection unit size) là 64 kilobyte, điều này có nghĩa là hiệu năng ghi đối với các kích thước nhỏ hơn (chẳng hạn như các bài thử nghiệm 4K) thường tệ hơn dự kiến. Một lần nữa, chúng tôi đã chạy các mô hình thử nghiệm khác nhau ở các kích thước khối (block size) 4K, 64K và 128K để cung cấp một loạt kết quả rộng rãi cho các hoạt động đọc và ghi.

Chúng tôi đã chọn Ubuntu Server 24.04.4 LTS làm đại diện cho Linux vì tính phổ biến và sự hỗ trợ lâu dài của nó. Hệ điều hành này chạy trên nhân Linux 6.8 theo mặc định, đây không phải là nhân mới nhất hay tiên tiến nhất, nhưng có khả năng đại diện cho một phần lớn các bản cài đặt trên toàn thế giới.

Các điểm nhấn chính

  • Windows Server 2025 với NVMe gốc chiến thắng trong ba trên bốn bài thử nghiệm hiệu năng đọc
  • Mức sử dụng CPU thấp hơn được ghi nhận với Windows Server trong hầu hết các bài thử nghiệm
  • Ubuntu Server 24.04.4 LTS chiến thắng trong ba trên bốn bài thử nghiệm hiệu năng ghi
  • Metric
Random 4K Random 64K
Windows Non-Native Windows Native Linux libaio Linux io_uring Windows Non-Native Windows Native Linux libaio Linux io_uring
Random Read
Bandwidth (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
Average latency (ms) 0.169 0.104 0.198 0.192 0.239 0.207 0.377 0.376
Total CPU Usage (%) 72.67 74.22 99.77 99.76 68.44 65.11 83.16 84.72

 

Metric Sequential 64K Sequential 128K
Windows Non-Native Windows Native Linux libaio Linux io_uring Windows Non-Native Windows Native Linux libaio Linux io_uring
Sequential Read
Bandwidth (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
Average latency (ms) 0.809 0.812 0.919 0.932 0.613 0.608 0.603 0.604
Total CPU Usage (%) 44.89 37.11 53.94 41.74 61.56 49.56 75.14 76.90

Lưu ý: Các kết quả IOPS của Linux được làm tròn đến hàng nghìn gần nhất do sự khác biệt trong báo cáo của FIO giữa Windows Server 2025 và Ubuntu Server 24.04.4 LTS. Các kết quả về băng thông, độ trễ và mức sử dụng CPU được làm tròn một cách nhất quán trên cả hai nền tảng.

Những con số không biết nói dối

Ngay lập tức, chúng ta có thể thấy rằng Ubuntu không vượt trội hơn Windows ở mọi danh mục. Mặc dù libaio và io_uring mang lại băng thông xuất sắc trong các bài thử nghiệm băng thông đọc ngẫu nhiên, chúng vẫn không sánh được với hiệu năng của ngăn xếp NVMe gốc từ Microsoft. Nhân Windows NT đã đánh bại nhân Linux khoảng 17% trong các bài thử nghiệm đọc ngẫu nhiên 64K của chúng tôi, với kết quả chiến thắng 91,165 GiB/s trên NVMe gốc so với mức tốt nhất của io_uring là 77,7 GiB/s.

Tuy nhiên, không phải mọi hy vọng đều tiêu tan đối với “thế lực công nghệ” của Torvalds. Ubuntu Server đã đánh bại sít sao Windows Server trong một trong các bài thử nghiệm hiệu năng đọc của chúng tôi: bài thử nghiệm tuần tự 128K. Tại đây, libaio của Linux đạt hiệu năng tốt nhất ở mức 97,05 GiB/s, so với mức 92,562 GiB/s của NVMe gốc trên Windows, chênh lệch khoảng 5%. Điều này chỉ ra rằng Linux có thể nắm giữ một lợi thế nhỏ khi quản lý các kích thước khối lớn hơn các đơn vị gián tiếp của ổ đĩa.

Băng thông ghi ngẫu nhiên đạt sự nhất quán trên cả Linux và Windows, đặc biệt là trong các bài thử nghiệm 64K. Kết quả tốt nhất và tệ nhất từ các bài thử nghiệm đó chỉ chênh lệch 0,05%, cho thấy tất cả các ngăn xếp lưu trữ đều đã khai thác được toàn bộ tiềm năng của ổ đĩa.

Thú vị là, nhân Linux 6.8 đã giành chiến thắng trong các bài thử nghiệm băng thông ghi tuần tự đối với các kích thước khối 64K và 128K. Mặc dù sự khác biệt không quá lớn, các ngăn xếp phần mềm mã nguồn mở vẫn đánh bại NVMe gốc của Windows Server khoảng 2 GiB/s trong cả hai trường hợp.

Các kết quả về độ trễ nhìn chung đi sau các kết quả thử nghiệm băng thông, được thể hiện rõ nhất qua sự chênh lệch trong các mức trung bình của bài đọc ngẫu nhiên. Thật không may cho Tux, libaio và io_uring có độ trễ cao hơn, với mức chênh lệch lớn nhất là 0,17 ms giữa NVMe gốc của Windows Server (0,207 ms) và libaio (0,377 ms) đối với các bài đọc ngẫu nhiên 64K.

Dưới đây là bản dịch tiếng Việt, rõ nghĩa, giữ nguyên bố cục và không thêm nội dung:

Có lẽ phát hiện gây sốc nhất từ các bài thử nghiệm của chúng tôi là mức chênh lệch khổng lồ về mức sử dụng CPU giữa Windows Server 2025 và Ubuntu Server 24.04.4 LTS. Trong ba trên bốn bài thử nghiệm đọc ngẫu nhiên và tuần tự, NVMe gốc của Windows Server có mức sử dụng CPU thấp nhất. Kết quả đáng chú ý nhất được ghi nhận trong đợt chạy thử nghiệm đọc tuần tự 128K, nơi Windows sử dụng ít hơn Linux tới 27,34%.

Dưới đây là bản dịch tiếng Việt, rõ nghĩa, giữ nguyên bố cục và không thêm nội dung:

Mức sử dụng CPU với libaio và io_uring đạt kết quả tốt hơn một chút trong các bài thử nghiệm ghi ngẫu nhiên và ghi tuần tự, nhưng bấy nhiêu vẫn là chưa đủ để ngăn NVMe gốc trên Windows Server giành chiến thắng trong ba trên bốn bài thử nghiệm. Một ngoại lệ đáng chú ý là mức sử dụng CPU của libaio trong bài thử nghiệm ghi ngẫu nhiên 4K, khi chạm mức 45,76% CPU của hệ thống, trong khi các ngăn xếp lưu trữ khác duy trì ở khoảng 20%.

Người chiến thắng giành lấy CPU

Như các kết quả của chúng tôi đã chỉ ra, Windows Server và Ubuntu Server có hiệu năng rất sát sao khi đối đầu trực tiếp trong cả các bài thử nghiệm hiệu năng ngẫu nhiên và tuần tự ở các kích thước khối khác nhau. Xét về băng thông, Windows Server 2025 với NVMe gốc nhìn chung vượt trội hơn Linux ở hầu hết các bài thử nghiệm đọc, trong khi Linux phản hồi lại bằng các kết quả tốt hơn một chút trong các bài thử nghiệm ghi của chúng tôi. Các số liệu về độ trễ của chúng tôi cũng phản ánh một câu chuyện tương tự, nhưng điểm nhấn thực sự là hiệu suất CPU của Windows Server 2025 khi sử dụng NVMe gốc.

Microsoft rõ ràng đã dồn nhiều công sức để biến ngăn xếp lưu trữ mới nhất thành phiên bản tốt nhất của họ, và dù không phải lúc nào cũng chiến thắng libaio và io_uring, nó vẫn mang lại một cuộc cạnh tranh sòng phẳng. Mặc dù các kết quả này không có tính quyết định đối với mọi trường hợp sử dụng và cấu hình máy chủ, chúng có thể giúp các quản trị viên máy chủ quyết định nên triển khai máy chủ Windows hay Linux khi hiệu năng lưu trữ là yếu tố quan trọng hơn tính tương thích của hệ điều hành.

Hãy cho chúng tôi biết suy nghĩ của bạn về các kết quả này bằng cách bình luận trên các nền tảng mạng xã hội của chúng tôi hoặc kênh Discord của SR! Bạn có kỳ vọng Windows Server sẽ thể hiện tốt như vậy trong các bài thử nghiệm của chúng tôi không, hay bạn đã cổ vũ cho Linux? Bạn có muốn thấy nhiều bản phân phối hoặc nhân Linux Server hơn được thử nghiệm không? Chúng tôi luôn mong muốn nhận được phản hồi từ bạn, và những bài thử nghiệm do người đọc yêu cầu như thế này thường trở thành những bài viết yêu thích nhất của chúng tôi.

__________________________________________________
📞 Liên hệ Megacore để được tư vấn cấu hình phù hợp và giải pháp hạ tầng cho doanh nghiệp – hoàn toàn miễn phí
🌐 Website: megacore.net
📧 Email: [email protected]
📲 Hotline: 0345 888 868
Cảm ơn bạn đã tin tưởng và lựa chọn sản phẩm của Megacore. Chúng tôi cam kết mang đến cho bạn những sản phẩm chất lượng và dịch vụ tốt nhất!

 

Công nghệ đột phá
dễ dàng nâng cấp

Đây là công nghệ cốt lõi được tin dùng bởi các ông lớn công nghệ toàn cầu như IBM, Cisco, Dell, HP, Red Hat … Nhờ đó, dịch vụ thuê VPS tại Megacore luôn đảm bảo hiệu suất cao, ổn định và đáng tin cậy, đáp ứng nhu cầu lưu trữ và vận hành hệ thống của doanh nghiệp mọi quy mô.

Bắt đầu chỉ với
399.000đ/tháng