CPU 使用率が 50% ですが、IIS/ASP.net リクエストはまだキューに入れられています

CPU 使用率が 50% ですが、IIS/ASP.net リクエストはまだキューに入れられています

当社には (VMWare) VM があり、負荷テストを行うと、120 ユーザーでリクエストのキューイングが開始されるようです。

CPU 使用率が 70% を超えていないようなので、リクエストの処理に失敗する理由がわかりません。

CPU時間は左下に赤で表示されます CPU グラフ

答え1

CPU は、リクエストを処理するための唯一のボトルネックではありません。すべては、アプリケーションが何を実行しているかによって決まります。IO バウンドの作業を多く実行している場合は、CPU よりもそれが大きな要因になる可能性があります。

ASP.net の ThreadPool には限られた数のスレッドがあるため、すべてのスレッドがビジー状態になるとキューに入れられます。この作品リクエストのキューイングに関するヒント。

リクエストごとに大量の SQL 挿入/更新を行っていますか? Glimpse を使用して、それらのタイミングを取得してください。 それらの数が多すぎると、応答を待つスレッド/リクエストが停止します。

サードパーティの API を呼び出していますか? それらはスレッド/リクエストを待機させ、許可される同時接続の数に制限があります。

アプリケーションは各ユーザーに対して何を実行しますか? 1000 件以上のレコードを取得していますか?

これをチェックしてMS Connect サポート記事まだ調整していない場合は、役立つ可能性のある IIS 構成オプションが多数あります。

繰り返しますが、これはアプリケーションが何をどのように実行するかを知らなくても実行できます。

関連情報