リクエストの実行が制限を下回っている場合でも、リクエストのキューイングが高いのはなぜですか?
以下の設定を使用しています
- ターゲット フレームワーク: .Net 3.5 フレームワーク
- アプリケーション プール :.Net Framework v2.0.50727 マネージド パイプライン モード – 統合
- そして、CPU の数は 8 なので maxconcurrentRequestperCPUx8=96
- RAM:24GB
machine.config および aspnet.config の既定の設定を使用
ACT でテストを行い、パフォーマンス カウンターを取得しました。
ASP.NET アプリ v2.0.50727(_LM_W3SVC_2_ROOT)\Requests Executing
ASP.NET v2.0.50727\Requests Queued
以下の変更を行いました
aspnet.config 内
<system.web>
<applicationPool maxConcurrentRequestsPerCPU="5000" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
</system.web>
machine.config 内
<system.web>
<processModel autoConfig="false" maxWorkerThreads="4095" maxIoThreads="4095" minWorkerThreads="2047" minIoThreads="2047" />
</system.web>
そして、Application Pool Queue Limit=5000 を提供します。これで、以下のスナップショットが示すように、キューイングされるリクエストが比較的少なくなり、高いリクエストが実行されます!!
ASP.NET アプリ v2.0.50727(_LM_W3SVC_2_ROOT)\Requests Executing
ASP.NET v2.0.50727\Requests Queued
しかし、驚くべきことに平均。ACT の 1 秒あたりの応答時間は改善されていません。
以下の質問があります…</p>
1) リクエストの実行が制限を下回っている場合でも、リクエストのキューイングが発生するのはなぜですか (私の場合、CPU 数 x maxconcurrentrequestperCPU = 8 x 12 = 96)。
2) aspnet.config、machine.config に変更を加えて、Application Pool Queue Limit=5000 を指定しても、要求のキューイングが観察されるのはなぜですか?
3) Request Executing Counter が高いのに ACT の応答時間が改善されないのはなぜですか?
どんな助けでも大歓迎です!!
ありがとう、
サンディープクマール・グプタ