2

IIS7.5 環境では、MaxConcurrentRequestsPerCPU を 1 に設定するように aspnet.config を構成しました。

ASMX Web サービスの WebMethod に応答して MaxConcurrentRequestsPerCPU と MaxConcurrentThreadsPerCPU を公開するように構成した IIS のこのインスタンスで Web サービスを実行しています。これにより、.NET フレームワークがこれらを正しく読み取っていることを Web サービス経由で確認できます。したがって、WebMethod に HostingEnvironment オブジェクトから値を返すようにするだけで、IIS によって正しく使用されるはずです。

また、単純に TestMethod と呼ばれる 5 秒間スレッドをスリープ状態にする WebMethod もあります。

理論的には、CPU ごとに 1 つのリクエストしか許可されていないため、この設定により、TestMethod への後続の呼び出しが連続的に行われるようになるはずです。または、CPU ごとにクアッド コア システムのコアごとに実際に許可される場合、本当に CPU ごとか、コアごとかによって、4 つの要求が並列に処理されます。

ただし、これらのいずれも当てはまらないようです。このメソッドへの 20 の同時リクエストの場合、完了時間は約 100 秒 (20 リクエスト x 5 秒) または 25 秒 ((20 リクエスト / 4 コア) x 5 秒) になると予想されます。代わりに、10 秒の完了時間で一貫して終了します。これは、同時要求制限が 1 に設定されているにもかかわらず、10 個の要求が並行して処理されていることを意味します。これは、CPU あたりの同時スレッド数も 1 に設定した場合にも当てはまります。

これらの設定が無視されるように見える、またはこの場合に文書化されているように機能しないように見える理由を誰か説明できますか?

4

1 に答える 1