2016-05-09 2 views
2

サーバーのパフォーマンスに問題があります。IISリクエストログを分析しているうちに、が完了するまでに多くのリクエストが発生します。私たちのIISログでは、executionTimeoutが110秒の場合、なぜリクエストは5分以上持続するのですか?

ASP.NET httpRuntime設定要素のexecutionTimeoutのデフォルト値がの場合、これはどのようにして可能ですか?

自動的は、ASP.NETでをシャットダウンされる前に、要求を実行するために許可されている最大秒数を指定します:docsexecutionTimeout [重点鉱山]は言います。

これはまさに我々が、ログエントリの下には、私たちは何かが間違っていると、それらの要求が設定(またはデフォルト)後に終了されていないことを信じさせる見たい動作ですタイムアウト:

slowest requests

HttpContext.Server.ScriptTimeoutへのコールについてもコードベースをチェックしましたが、まれにしか実行されず、600(秒)以内に割り当てられた2つしかありません。

+0

私たちは、Kibanaをフロントエンドとして持つElasticSearchノードを使用します。それがスクリーンショットの由来です。 http://i.stack.imgur.com/efwWy.png私のために大丈夫です... – Oliver

+0

素晴らしい! **最も遅いリクエストを得る**:Windowsサーバーに 'ElasticSearch node with Kibana'がインストール可能ですか?_ElasticSearch&Kibana_設定に関する***のヒントやトリック***? – Kiquenet

答えて

0

あなたのアプリや環境についてもっと知らなくても、言うことは難しいです。しかし、このリンクは、なぜそれが予想以上に高くなるのかを説明するのに役立ちます。

具体

Description of the time-taken field in IIS 6.0 and IIS 7.0 HTTP logging

:IIS 6.0、典型的には、ネットワーク時間を含む時間取らフィールドから始め

。 HTTP.sysは時刻取得フィールドの値を記録する前に、通常、クライアントが最後の応答パケットの送信操作を確認するのを待つか、HTTP.sysがクライアントが基になるTCP接続をリセットするのを待ちます。したがって、大規模な応答または大きな応答が低速のネットワーク接続を介してクライアントに送信されると、時間がかかるフィールドの値が予想以上になることがあります。

次の条件のいずれかに該当する場合、時間取らフィールドの値は、ネットワーク時刻が含まれていない。

  • 応答の大きさがより小さいか2キロバイトと等しく、かつ応答でありますサイズはメモリからのものです。
  • TCPバッファリングが使用されます。 HTTPAPI.dllを使用するアプリケーションは、HTTP_SEND_RESPONSE_FLAG_BUFFER_DATAフラグを設定して、 Windows Server 2003 Service Pack 1以降でTCPバッファリングを有効にすることができます。これにより、サーバ は、クライアントに対応する応答のために を待つことなく、すべての応答データをクライアントに送信することができます。

希望します。

+0

ASP.NET WebFormsで、** Note **セクションの2番目のケースが真であるかどうかは分かりますか?あなたの参照が実際に問題の原因であるかどうかを評価しようとしています。 – Oliver

+0

正直、私は完全にはわかりません。以下は、もう少し設定することを説明する記事です... https://blogs.msdn.microsoft.com/wndp/2006/08/15/buffering-in-http-sys/私が推測しなければならないのは、アプリケーションがIISがどのように設定されているか、アプリケーションタイプ(MVCまたはWebForms)がデフォルトで気にならないかどうかに依存するということです。 – WonderGrub

+0

リンクをありがとう、同じ記事も見つかりました。しかし、ASP.NETがTCPバッファリングを使用するかどうか、またその応答を送信するかどうかについてのヒントは見つかりません... – Oliver

関連する問題