fc2ブログ

HTTP アクティブスレッド数

バッファプールの話を書いてたらこの話も浮かんできたので。。

(参考)Lotus Domino HTTP アクティブスレッド数の推奨 (#731489)

HTTPのアクティブスレッド数は最大でも80程度で、と言う内容の文書なのですが、バッファプールの話と比べるとこちらはもう少し話が複雑に思えます。

HTTPアクティブスレッド数の上限を少なくするのもやはりパフォーマンス上デメリットがあるから、と言うよりこれより大きな値を設定するとリスクが大きくなる、と言う意味合いも大きいのではないかと思っています。
 スレッド数を増やすと、Process Heapの使用量は増えてしまうのでノーツの文書情報のようなプロセス間で共有される可能性のある情報がヒープを圧迫してしまったりする恐れがあるのです。なのでうちの環境では増やしたほうがパフォーマンスがよかった、と言う声も度々聞かれるのですがやはり問い合わせでは大きな値は可能な限り、戻してもらう事を検討して頂けないかをお願いさせて頂いたりしています。

比較的処理時間の長い WebQueryOpen/WebQuerySave エージェントが、頻繁に実行されるようなケースではアクティブスレッド数は意外と足りなくなりやすいのですが、そのようなケースでもアクティブスレッド数を増やすよりは、別のサーバーに振り分けるようなことを考えたほうがよいのではないかと思います。逆にあまり計算が走らないようなWebアプリでは80スレッドでもかなりの同時ユーザー数をカバーできたりします。


Technoteでは、パフォーマンスの評価をする際にも、単純に消費されたスレッド数だけでなく、リクエストの平均処理時間などを考慮したうえで決める、と言った原理的な話も出てくるので是非ご一読頂ければと思います。

コメント

非公開コメント