IISのパフォーマンスは、Kestrel httpサーバーと比較してどのように見えますか?
Kestrelは、非同期およびイベント駆動型のサーバーフレームワークのファミリから大きな影響を受けているようです。その間、IISは開発の長い歴史を持ち、明らかに機能の面でより成熟しています。これらすべてを考慮して、メモリ使用率、スレッド使用率の比較を特に探しています。リクエスト関連の比較(1秒あたりのリクエストなど)およびストリーミング機能。
GitHubリポジトリからの XSLXファイル は、探しているパフォーマンスの比較を見ることができます。
IISとKestrelで.netコア1.0と2.0の両方のアプリをホストしています。テストは、認証/承認を使用した実世界のREST API CRUDで、ロギング、メトリック、レート制限など。また、.netコアアプリは完全にMSブックによって行われ、推奨される1.0/2.0標準に準拠していました。
同じハードウェア設定で、背後でホスティングするIISは1秒あたり約40%のリクエストを常に提供しました。パフォーマンスの違いを説明できる記事またはコンサルタントを見つけることができません。
また、コアベンチマーク機関 https://github.com/aspnet/benchmarks から最適化のヒントを見つけようとしましたが、設定とサービス初期化子を調べてみましたが、それでもIISはより高速でした。
ポインタはありますか?
2016年11月現在、 ASP.NETベンチマーク から直接。
パイプラインの深さが16のWindows Server 2012:
stack on RT requests/sec
ASP.NET 4.6 IIS CLR 57,792
ASP.NET 5 Kestrel CoreCLR 1,188,521
それは20倍または2000%の高速化です。 IIS vsケスタレルスタンダーン).
それと、なぜLinuxでそんなに遅いのか。
以下は、asp.netチームによる予備のKestrelベンチマークです。あなたが探していたものほど網羅的ではありませんが、RPSに関する情報を投稿していることがわかります。彼らがリリースに近づくにつれて、もっと多くのものが来ると確信しています。 IIS簡単なグーグル検索でインターネット上で見つけることができるベンチマーク:
インプロセスホスティングのIISの方が高速です(ドキュメントから直接取得):
インプロセスホスティングを使用すると、ASP.NET Coreアプリは、そのIISワーカープロセスと同じプロセスで実行されます。インプロセスホスティングは、リクエストがtは、ループバックアダプター、つまり発信ネットワークトラフィックを同じマシンに戻すネットワークインターフェイスを介してプロキシされます。
ホスティングモデル を参照してください。