0

今日、私は私たちのウェブサイトで本当に奇妙なことを思いつきました. パフォーマンスの問題がありました。IIS 7.5 (Windows 2008) 上の Asp.NET Mvc Web は、X 回ごとにフリーズしました。同じインフラストラクチャ上の MSSQL Server に接続する通常の E コマース システムです。しかし、製品の詳細ページに移動すると、ページがロードされた後、AJAX を介して在庫を要求します。在庫を要求する必要がある 2 つの倉庫があります。

今日、他の倉庫でサーバーの問題が発生し、当社の e コマース Web サイトからこのサーバーへの接続 (在庫を問い合わせるための 1 つのクエリを使用した外部の単純な接続) で、このサーバーへの接続ごとにタイムアウトが発生しました。しかし、私が言ったように、この外部サーバーは、ajax 呼び出しのクエリとしては何も関与していません。

奇妙なことに、この外部サーバーへの接続を確立すると、すべてのユーザー (IIS プール全体) がフリーズします。接続タイムアウト後、すべてのリクエストが処理されますが、それまでは処理されません。

それは正常ですか?すべてのリクエストは独自の「スレッド」で行われると思いました。PDはリンクサーバーなどではありません。そこへの直接接続と1つのクエリ、それ以上のものはありません。

いくつかの提案?

4

1 に答える 1

1

アーキテクチャの非常に一般的な説明と提供される診断情報が限られていることを考えると、これが発生する理由は多数あります。

ただし、確認する価値があることが 1 つあります。利用可能なIIS ワーカー スレッドと完了ポートは非​​常に多くあります。すべての (または非常に多くの) ワーカー スレッドが失敗した接続を待機することになった場合、他の要求を処理するために使用できるワーカー スレッドはありません (またはほとんどありません)。

開発または QA で問題を再現できる場合 (意図的に接続を誤って構成するなど)、IIS の状態を診断してみてください。このガイダンスを確認してください。

http://www.orcsweb.com/blog/terri/troubleshoot-iis-application-hangs-unresponsiveness/

于 2013-10-03T20:34:09.773 に答える