Điểm chuẩn kiểm tra tốc độ Windows IIS

Tác giả sysadmin, T.M.Hai 25, 2022, 02:14:56 CHIỀU

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

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

Điểm chuẩn kiểm tra tốc độ Windows IIS


Tiếp theo từ điểm chuẩn máy chủ web Linux gần đây của tôi, tôi sẽ thực hiện các thử nghiệm tương tự trên tất cả các thế hệ máy chủ web IIS hiện tại của Microsoft.

Ở đây, tôi sẽ thực hiện các điểm chuẩn đối với các phiên bản bên dưới của máy chủ web IIS và sau đó so sánh chúng với nhau để biết được phiên bản nào hoạt động tốt nhất trong khối lượng công việc tĩnh.

  • 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

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 cuối cùng đượ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. Trong tổng số 3,2 tỷ yêu cầu GET đã được hoàn thành để xác định kết quả bên dưới.

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 đ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 các 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 có thể so sánh được 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 Windows đượ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 Windows đang chạy tại một thời điểm trong quá trình thử nghiệm. Tất cả các máy chủ Windows đã cài đặt tất cả các bản cập nhật Windows có sẵn cho đến nay.

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à để có ý tưởng về cách các phiên bản IIS khác nhau hoạt động với tốc độ thô bằng cách phân phát 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ư ASP/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 IIS được để mặc định hoàn toàn, không có thay đổi nào được thực hiện đối với chính cấu hình IIS.

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 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 Windows 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.

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 IIS - 1 lõi CPU:


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


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


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


3. 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.


Kết quả chắc chắn không như tôi mong đợi. Tôi thực sự đã chạy lại một số bài kiểm tra để xác nhận kết quả là chính xác. Nói chung, tôi cho rằng các phiên bản mới hơn của hệ điều hành Windows và IIS sẽ hoạt động tốt hơn, tuy nhiên điều này có vẻ không hoàn toàn đúng như bạn có thể thấy. Cũng không phải là các phiên bản mới hơn luôn kém hơn, khi tôi nhìn thấy kết quả của IIS 10.0, suy nghĩ đầu tiên của tôi là có thể bản thân HĐH hoặc IIS đã tăng chức năng ở đâu đó dẫn đến giảm hiệu năng.

Nếu có bất cứ điều gì, chúng ta có thể thấy rằng ít nhất các phiên bản mới hơn của IIS (8.5 và 10.0) xuất hiện nhiều khả năng mở rộng hơn với số lượng lõi CPU tăng lên, bằng chứng là trong biểu đồ tổng thời gian đã trôi qua. Mặc dù chúng ta có thể thấy lợi nhuận giảm dần khi bài kiểm tra hoàn thành nhanh như thế nào, nhưng sự khác biệt giữa bài kiểm tra 4 và 8 lõi vẫn khác nhau. Các bài kiểm tra IIS 7.5 và 8.0 để so sánh gần giống nhau và sau đó tệ hơn ở số lượng lõi cao hơn tương ứng. Số lượng lõi là 4 dường như là điểm lý tưởng ở đây để có hiệu suất tốt nhất với IIS trong khối lượng công việc tĩnh với cài đặt sẵn có mặc định, tất nhiên điều này có thể thay đổi khi điều chỉnh thêm cấu hình.

Cũng thú vị là IIS dường như đã đánh bại tất cả các máy chủ web dựa trên Linux mà tôi đã thử nghiệm vào năm ngoái. Vì vậy, ngay cả khi kết quả ở đây không hợp lý nhất, điều rất thú vị là trong thử nghiệm khối lượng công việc tĩnh cụ thể này, các máy chủ web Windows đã dẫn đầu về số lượng yêu cầu thô mỗi giây.