Điểm chuẩn máy chủ web Linux so với Windows

Tác giả sysadmin, T.M.Hai 25, 2022, 01:50:45 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Điểm chuẩn máy chủ web Linux so với Windows


Theo dõi điểm chuẩn máy chủ web Linux và điểm chuẩn máy chủ web Windows gần đây của tôi, tôi nhận thấy rằng nhìn chung IIS có vẻ hoạt động tốt hơn tất cả các máy chủ web dựa trên Linux mà tôi đã thử nghiệm trước đây.

Khi kết quả Linux của tôi được hoàn thành vào tháng 3 năm ngoái, tôi đã chạy lại một số thử nghiệm với các phiên bản cập nhật nhất của từng máy chủ web để đảm bảo có thể đạt được hiệu suất tốt nhất.

Vì vậy, hãy tìm hiểu xem các máy chủ web dựa trên Linux và Windows so sánh với nhau như thế nào trong bài kiểm tra tốc độ khối lượng công việc tĩnh.

Trước tiên, tôi sẽ thảo luận về cách các bài kiểm tra được thiết lập và thực hiện trước khi chuyển sang phần kết quả.

1. Phần mềm đo điểm chuẩn

Một lần nữa, tôi đã sử dụng Weighttpd để thực hiện các bài kiểm tra điểm chuẩn thực tế, vì tôi nhận thấy rằng nó hoạt động tốt và chia tỷ lệ khá đẹp với nhiều luồng.

Tôi đã chạy phần mềm đo điểm chuẩn trong máy ảo dựa trên Linux của chính nó. Vấn đề với việc chạy weighttpd trên cùng một máy chủ đang chạy phần mềm máy chủ web là một lượng đáng kể tài nguyên CPU sẽ được sử dụng bởi chính thử nghiệm, do đó bị lấy đi khỏi máy chủ web.

Weighttpd được chạy thông qua tập lệnh abc, về cơ bản tự động hóa quy trình kiểm tra cho tôi. Thay vì chạy hàng trăm lệnh weighttpd, tôi sử dụng tập lệnh này để tự động chuyển qua các mức tương tranh khác nhau.

Mã nguồn [Chọn]
weighttp -n 1000000 -c [0-1000 step:10 rounds:2] -t 8 -k "http://x.x.x.x:80/index.html"
Trong đó -n là số lượng yêu cầu, trong trường hợp này, chúng tôi đang gửi 1.000.000 yêu cầu cho mọi cấp độ đồng thời của -c được chỉ định. Nhờ có ab.c, chúng tôi có thể chuyển từ 0 yêu cầu đồng thời lên đến 1.000 với gia số 10 lần một lần. Mỗi bài kiểm tra cũng được thực hiện 2 lần như quy định trong các vòng, bằng cách này tôi có thể nhận được kết quả trung bình tốt hơn vì mỗi cấp độ đồng thời được chạy 2 lần. Do đó, tổng cộng mọi thử nghiệm ở mỗi cấp độ lõi đều dẫn đến khoảng 200.000.000 yêu cầu GET được gửi đến máy chủ web tại http://xxxx:80/index.html.

Tôi thường chạy thử nghiệm nhiều lần hơn để đạt được mức trung bình tốt hơn, tuy nhiên do IIS phản hồi quá nhanh nên tôi phải tăng từ 100.000 yêu cầu thông thường của mình ở mỗi cấp độ đồng thời lên 1.000.000 để có được số lượng thích hợp, vì vậy tôi sẽ xem xét cho kết quả trung bình sơ bộ hơn là kết quả có thể lặp lại chính xác hơn.

Cờ -t chỉ định số lượng luồng sẽ sử dụng, điều này được điều chỉnh từ 1, 2, 4 và 8 tùy thuộc vào số lượng lõi CPU được chỉ định cho máy chủ web cho mỗi lần kiểm tra. Cờ -k cũng được chỉ định khi chúng tôi đang sử dụng tính năng giữ nguyên.

2. Môi trường thử nghiệm

Để thực hiện các bài kiểm tra, tôi đã sử dụng bốn máy ảo Windows và một máy ảo CentOS Linux đang chạy trên VMware ESXi 5.5, do đó, mặc dù có thể đạt được một lượng hiệu suất cực kỳ nhỏ khi chạy trên kim loại trần, nhưng việc sử dụng máy ảo cho phép tôi dễ dàng sửa đổi số lượng lõi CPU có sẵn khi thay đổi giữa các lần kiểm tra. Dù sao thì tôi cũng không cố gắng đạt được hiệu suất tuyệt đối tốt nhất, miễn là mỗi bài kiểm tra đều tương đương với những bài kiểm tra khác thì không sao và tôi có thể kiểm tra đầy đủ những gì mình đang theo đuổi.

Bản thân máy chủ vật lý đang chạy ESXi có hai ổ cắm CPU, mỗi ổ cắm có CPU Intel Xeon L5639 @ 2,13GHz (Turbo 2,7GHz), với tổng số 12 lõi CPU. Các số được cung cấp trong bài đăng này chỉ nên được so sánh ở đây trong bài đăng này chứ không phải các điểm chuẩn khác mà tôi đã thực hiện trước đây, vì mọi thứ ở đây đều chạy trên cùng một phần cứng ở đây.

Tất cả các máy ảo được chỉ định 4GB RAM và đang sử dụng cùng một ổ SSD để lưu trữ. Số lượng lõi CPU trên các lõi này được điều chỉnh thành 1, 2, 4 và sau đó là 8 cho mỗi bài kiểm tra. Chỉ có một máy ảo đang được thử nghiệm được chạy cùng một lúc. Do đó, tất cả các máy ảo, cho dù Windows hay Linux đều chạy trên cùng một trình ảo hóa và phần cứng giống hệt nhau, do đó, sự khác biệt duy nhất là ở cấp độ hệ điều hành và máy chủ web.

2.1. Cấu hình máy chủ web

Điều quan trọng cần lưu ý là các máy chủ web này chỉ phục vụ khối lượng công việc tĩnh, là trang index.html 8 byte chứa chuỗi "Thử nghiệm". Mục tiêu của thử nghiệm này là để biết được cách các máy chủ web khác nhau hoạt động với tốc độ thô bằng cách cung cấp cùng một tệp. Tôi muốn thử nghiệm thêm trong tương lai đối với nội dung động chẳng hạn như PHP, hãy cho tôi biết nếu bạn muốn xem nội dung này.

Mặt khác, tất cả các cài đặt máy chủ web được để mặc định hoàn toàn, không có thay đổi nào được thực hiện.

2.2. Cấu hình máy chủ

Không có thay đổi nào được thực hiện đối với hệ điều hành Windows hoặc Linux cho các thử nghiệm này. Tất cả các máy chủ đã được cập nhật đầy đủ với tất cả các bản cập nhật có sẵn được cài đặt. Phiên bản Windows Datacenter với GUI đã được sử dụng cho tất cả các thử nghiệm Windows IIS.

Dưới đây là danh sách các phiên bản hệ điều hành và máy chủ web đã được sử dụng trong quá trình thử nghiệm này.

  • Máy chủ Windows 2008 R2 – IIS 7.5
  • Máy chủ Windows 2012 – IIS 8.0
  • Máy chủ Windows 2012 R2 – IIS 8.5
  • Máy chủ Windows 2016 – IIS 10.0
  • CentOS 7.3 – Apache 2.4.6
  • CentOS 7.3 – Nginx 1.10.2
  • CentOS 7.3 – OpenLiteSpeed 1.4.24
  • CentOS 7.3 – Lighttpd 1.4.44

3. Kết quả điểm chuẩn

Bây giờ tất cả những điều đó đã được giải thích, đây là kết quả kiểm tra điểm chuẩn của tôi dưới dạng biểu đồ.

Điểm chuẩn máy chủ web Windows IIS và Linux - 1 lõi CPU:


Điểm chuẩn máy chủ web Windows IIS và Linux - 2 lõi CPU:


Điểm chuẩn máy chủ web Windows IIS và Linux - 4 lõi CPU:


Điểm chuẩn máy chủ web Windows IIS và Linux - 8 lõi CPU:


4. Tổng thời gian đã thực hiện

Biểu đồ cuối cùng này chỉ hiển thị thời gian hoàn thành các bài kiểm tra ở định dạng giờ:phút:giây. Hãy ghi nhớ như đã đề cập trước đó, mỗi thử nghiệm sẽ dẫn đến khoảng 200.000.000 yêu cầu NHẬN cho trang index.html. Tổng thời gian của Apache không được hiển thị vì kết quả làm sai lệch biểu đồ quá nhiều vì nó quá chậm. Kết quả lõi đơn mất hơn 21 giờ để hoàn thành.
Điểm chuẩn máy chủ web Windows IIS và Linux - Tổng thời gian đã trôi qua


Kết quả là những gì tôi mong đợi dựa trên các kết quả riêng lẻ của điểm chuẩn máy chủ web Windows và Linux trước đây của tôi, tuy nhiên tôi vẫn ngạc nhiên khi thấy những kết quả này. Tôi rất muốn tìm hiểu lý do tại sao các máy chủ Windows IIS đánh bại hầu hết các máy chủ web Linux đã thử nghiệm trong tất cả các thử nghiệm.

Trong tất cả các thử nghiệm, chúng tôi cũng có thể thấy Lighttpd chậm lại sau mốc 600 yêu cầu đồng thời, trong khi trong ba thử nghiệm đầu tiên, Nginx dường như tăng ở mức đồng thời cao hơn.

Chỉ ở các cấp độ cốt lõi cao hơn, các máy chủ web dựa trên Linux mới bắt đầu bắt kịp, cụ thể là trong bài kiểm tra 8 lõi, nơi OpenLiteSpeed và Nginx đang hoạt động ngang bằng với IIS. Với cùng một phần cứng, nền tảng Windows với IIS dường như nhanh hơn trong việc xử lý khối lượng công việc tĩnh này với cài đặt máy chủ web và hệ điều hành mặc định thuần túy. Rất có thể đáng để thử nghiệm thêm Apache/Nginx trên Windows để xem so sánh với Linux như thế nào.