2015-12-23 308 views
13

IIS與Kestrel http服務器相比,性能如何?IIS與Kestrel性能比較

Kestrel似乎受到異步和事件驅動的服務器框架系列的啓發。與此同時,IIS有着悠久的發展歷史,在功能上顯然更加成熟。考慮到所有這些因素,我特別尋找內存利用率,線程利用率,請求相關比較(如每秒請求)和流媒體功能的比較。

+0

當Kestrel甚至沒有發佈時,在這個階段根本不可能。 Kestrel本身的性能實際上與IIS無法比擬,因爲您還需要考慮前端nginx,並且在取得良好結果之前需要進行大量調整。 –

+1

@LexLi不知道我明白什麼是不可能的:) Kestrel是新一代asp.net工具的一部分,用作獨立服務器。所以它*是*可用的,因爲新的asp.net可用。 考慮到性能,不知道爲什麼我需要放置前端服務器進行測試 - 這個想法是測試由Kestrel(和libuv)和IIS核心引入的事件驅動方法對性能的影響 – madcyree

+0

比較全功能生產網絡服務器與有限功能託管服務器。考慮Jetty vs. Kestrel與node.js,它們是相似的。 –

回答

9

下面是從GitHub庫,你可以看到你正在尋找的性能comparisson的XSLX file

在Excel上打開文件並選中「最新」選項卡。 enter image description here

+1

這個基準尤其是「明文」,還有其他幾種基準測試。它們都來自[TechEmpower基準測試](https://www.techempower.com/benchmarks/) –

0

以下是由asp.net團隊提供的一些初步Kestrel基準測試。儘管不像您所尋找的那樣詳盡,但您會發現他們會發布一些關於RPS的信息。我相信隨着他們接近版本,會有更多的人來。 IIS基準測試,你可以在互聯網上找到一個簡單的谷歌搜索:

https://github.com/aspnet/benchmarks

0

截至2016年11月,直接從ASP.NET benchmarks

在Windows Server 2012中,在16的流水線深度:

  • ASP.NET 5隼:每秒
  • ASP.NET 4.6 IIS 1188521個請求:每秒
57792請求

這是一個20倍或2000%的加速。我瞭解一個完全成熟的IIS與獨立的Kestrel,但我確實希望ASP.NET團隊中的某個人能夠深入瞭解這一點,因爲差異是巨大的。

這就是爲什麼它在Linux上慢得多。

benchmark results

+4

很酷。但沒有人使用Kestrel而沒有任何http服務器作爲可以處理強大安全級別的代理。因此,Kestrel在生產中無用。只是另一個特殊的奧運紀律 – Maybe

+2

爲什麼Linux上的Kestrel與Windows相比具有較低的rps? –

0

我做了相當多的標杆爲我的當前項目,同時承載.NET核心1.0和IIS和紅隼2.0的應用程序。這些測試是真實世界的rest-api CRUD,包括身份驗證/授權,日誌記錄,指標,速率限制等。另外,.net核心應用完全由MS書完成,符合推薦的1.0/2.0標準。

在相同的硬件設置下,託管在IIS後面的服務器每秒的請求量不斷增加約40%。我仍然無法找到能夠解釋性能差異的文章或顧問。

我也嘗試從核心基準測試權威https://github.com/aspnet/benchmarks中尋找任何類型的優化技巧,通過翻閱設置和服務初始值設定項,但IIS仍然更快。

任何指針?