2015-12-23 22 views
13

Hiệu năng của IIS trông như thế nào so với máy chủ http Kestrel?So sánh hiệu suất của IIS so với Kestrel

Có vẻ như Kestrel được lấy cảm hứng từ gia đình các khung máy chủ không đồng bộ và sự kiện điều khiển. Trong khi đó, IIS có một lịch sử phát triển lâu dài và rõ ràng là trưởng thành hơn về mặt tính năng. Lấy tất cả những gì vào tài khoản, tôi đặc biệt đang tìm kiếm một so sánh sử dụng bộ nhớ, sử dụng thread, so sánh yêu cầu liên quan (như yêu cầu mỗi giây) và khả năng streaming.

+0

Điều đó đơn giản là không thể ở giai đoạn này khi Kestrel không được phát hành. Hiệu suất của Kestrel một mình là thực tế không thể so sánh với IIS, vì bạn cần phải đưa nginx kết thúc trước của nó vào xem xét, và đòi hỏi rất nhiều điều chỉnh trước khi đạt được kết quả tốt. –

+1

@LexLi không chắc chắn rằng tôi hiểu chính xác những gì là không thể :) Kestrel là một phần của thế hệ mới của các công cụ asp.net và được sử dụng như máy chủ độc lập.Vì vậy, nó * là * có sẵn, kể từ khi asp.net mới có sẵn. Về hiệu suất, không chắc chắn tại sao tôi cần phải đặt một máy chủ front-end để thử nghiệm - ý tưởng là để kiểm tra tác động hiệu suất của cách tiếp cận hướng sự kiện được giới thiệu bởi Kestrel (và libuv) và lõi IIS – madcyree

+0

Thật không công bằng khi so sánh đầy đủ tính năng sản xuất máy chủ web với một tính năng giới hạn lưu trữ máy chủ. Hãy xem xét Jetty so với Kestrel so với node.js và chúng tương tự nhau. –

Trả lời

9

Đây là XSLX file từ repo GitHub nơi bạn sẽ nhìn thấy comparisson hiệu suất mà bạn đang tìm kiếm.

Mở tệp trên Excel và kiểm tra tab "Mới nhất". enter image description here

+1

Điểm chuẩn đó cụ thể là "bản rõ", có một số kịch bản khác được đánh giá chuẩn. Tất cả đều là các kịch bản từ [Điểm chuẩn TechEmpower] (https://www.techempower.com/benchmarks/) –

0

Dưới đây là một số điểm chuẩn Kestrel sơ bộ của nhóm asp.net. Trong khi không đầy đủ như những gì bạn đang tìm kiếm, bạn sẽ thấy họ đăng một số thông tin về RPS. Tôi chắc chắn nhiều hơn sẽ đến khi họ nhận được gần hơn với một bản phát hành. IIS benchmarks bạn có thể tìm trên internet với một tìm kiếm google đơn giản:

https://github.com/aspnet/benchmarks

0

Kể từ tháng 11 năm 2016, ngay từ ASP.NET benchmarks.

Trên Windows Server 2012, ở độ sâu đường ống 16:

  • ASP.NET 5 Kestrel: 1.188.521 yêu cầu mỗi giây
  • ASP.NET 4.6 IIS: 57.792 yêu cầu mỗi giây

Đó là tăng tốc 20x hoặc 2000%. Tôi hiểu một IIS đầy đủ so với Kestrel đứng nhưng tôi hy vọng một người nào đó trong nhóm ASP.NET có thể đi sâu vào điều này bởi vì sự khác biệt là rất lớn.

Điều đó và tại sao nó chậm hơn rất nhiều trên Linux.

benchmark results

+4

Tuyệt. Nhưng không ai sử dụng Kestrel mà không có bất kỳ máy chủ http nào làm proxy có thể xử lý một mức độ bảo mật mạnh. Vì vậy, kết quả là Kestrel là vô dụng trong sản xuất. Chỉ cần một kỷ luật Olympic đặc biệt khác. – Maybe

+2

Tại sao Kestrel trên Linux có tỷ lệ rps thấp so với Windows? –

0

tôi đã làm khá nhiều điểm chuẩn cho dự án hiện tại của tôi, lưu trữ cả .net lõi 1.0 và 2.0 ứng dụng trên IIS và Kestrel. Các thử nghiệm là CRUD rest-api thế giới thực với xác thực/ủy quyền, ghi nhật ký, số liệu, giới hạn tỷ lệ vv. Ngoài ra, ứng dụng lõi .net được thực hiện hoàn toàn bằng sách MS, tuân thủ các tiêu chuẩn 1.0/2.0 được đề xuất.

Với cùng thiết lập phần cứng, lưu trữ phía sau IIS liên tục phục vụ khoảng 40% yêu cầu mỗi giây. Tôi vẫn không thể tìm thấy một bài báo hoặc một nhà tư vấn có thể giải thích sự khác biệt về hiệu suất.

Tôi cũng cố gắng tìm bất kỳ mẹo tối ưu hóa nào từ cơ quan điểm chuẩn lõi https://github.com/aspnet/benchmarks, bằng cách lục lọi thông qua cài đặt và trình khởi tạo dịch vụ, nhưng vẫn còn, IIS chỉ nhanh hơn.

Mọi con trỏ?

Các vấn đề liên quan