0

私の環境: Windows Server 2008、IIE 7.0、ASP.NET

Silverlight クライアントを開発しました。このクライアントは、WCF Web サービスを介して ASP.NET ホストから更新を取得します。

ユーザー数が非常に少ない場合 (~50)、CPU 使用率が 100% になり、接続が切断されます。サーバーは明らかにそれ以上のことを処理できるはずです。

DEV サーバーでいくつかのテストを実行したところ、実際に 100 リクエスト/秒で CPU が最大になりました。奇妙なことに、サービスがハードコードされたデータを送り返すダミーに置き換えられたとしても、サービスは依然として CPU を使い果たします。スレッド数が約 20 と非常に少なく見えたので、どこかで競合が発生していると思いました。

processModel見つかったすべての構成オプションを変更して、ワーカー スレッド ( 、httpRuntimeおよびMaxRequestsPerCPUレジストリ エントリ)を増やしました。何も変わっていません。

次に、IIS サーバーを停止し、Web サービスをコンソールとして実行しました (すべての ASP 認証参照を削除しました)。このサービスは、CPU も使い果たしました。

次に魔法の部分です。コンソール アプリを強制終了し、IIS を再起動したところ、サービスは 5 ~ 60% の CPU で 100 リクエスト/秒を実行し、50 以上のワーカー スレッドを確認できます。プリプロ マシンで同じことを行ったところ、同じ魔法の効果が得られました。マシンを再起動すると、良好な動作が維持されます。

私の質問は、私の IIS サーバーを修正するために何が起こったのですか? 何がそれを修正したのか本当に理解できません。

乾杯。

4

1 に答える 1

1

高い CPU 使用率の根本原因を突き止めれば、解決策を見つけることができます。

http://support.microsoft.com/kb/919791

于 2011-02-06T05:49:50.230 に答える