dポイントプレゼントキャンペーン実施中!

asp.netの同時処理数について教えてください。
現在、アプリケーションの負荷テストを行っていますが、
例えば100件同時に投げても、同時に20件程度しか処理してくれず、
結果が返ってきてから、キューにたまっていた要求が、4,5件ずつ処理されて
いるような感じです。
ネットでいろいろ調べてmachin.config内の設定もmaxWorkerThreads=100にしてみました。
同時に処理できるのは(maxWorkerThreads - minFreeThreads)みたいな
ことが書いてあったので、現在の設定なら同時に50件以上は処理できると
思うのですが、どのように設定してみても処理件数が変わりません・・・
知識がなく、うまく質問も出来ませんが、何かわかる方がいましたら教えてください。お願いします。

A 回答 (1件)

負荷テストで使用されたツールは、MSから提供されているStress Test Toolですよね?また、.NET Frameworkのバージョンを念のため教えて頂けますか?



.NET Framework2.0での話に限っていえば、たしかに、maxWorkerThreadsに100を設定しても、CPU数に依存してくるので、いくら大きな数値を設定しても、CPU数が1個とかだと、作成されるワーカースレッドの数も当然少ないです。
なので、maxWorkerThreads - minFreeThreads で、CPU数が1つしかないと、100(maxWorkerThreads) - (88(minFreeThreads) × 1CPU) = 12個の
ワーカースレッドしか作れないということになります。

同時実行数を増やしたいのであれば、machine.configのprocessModelにある、maxWorkerThreadsだけではなく、MaxIOThreads も100に設定するか、
もしくは、 .NET Framework2.0の話であれば、<prosessModel autoConfig="true">のように指定してあげると、自動的に推奨値(maxWorkerThreads, MaxIOThreadsを100にする)で処理するオプションがあるので一度、試してみてください。

(ただし、.NET Framework1.1だと、確かスレッドプール数が20が上限?だったと思いました。そうなると、.NET Framework1.1の場合は、同時実行処理数に制限が出てくるかもしれませんね)

詳しいことは、

Microsoft P&P 「ASP.NET パフォーマンスの向上」
http://www.microsoft.com/japan/msdn/enterprise/p …

高パフォーマンス ASP.NET アプリケーションの開発
http://msdn.microsoft.com/ja-jp/library/5dws599a …

をご覧下さい。

#ただし、要求スレッド数をあまり増やしすぎると、
 レスポンス悪化につながりますので、気をつけてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
確かにVerは1.1です。

そうなると環境の見直しも必要なのかもしれませんね。
もう少し調査してみます。

ありがとうございました。

お礼日時:2008/09/29 11:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!