3

私は Apache ベースの ibm http サーバーを使用しています。ThreadsPerChildパラメータを 1000 以上に増やそうとすると、http サーバーは常に 1000 のワーカー スレッドしか起動しません。以下は関連情報です。

エラーログ:

[Thu Jul 05 10:50:45 2012] [デバッグ] mpm_winnt.c(564): 子 9040: 親から 2 つのリスナーを取得しました
[Thu Jul 05 10:50:45 2012] [通知] 子 9040: 開始ミューテックスを取得しました.
[Thu Jul 05 10:50:45 2012] [通知] 子 9040: 1000 個のワーカー スレッドを開始しています。
[Thu Jul 05 10:50:45 2012] [通知] 子 9040: ポート 81 でリッスンするスレッドを開始します。
[Thu Jul 05 2012 10:50:45] [通知] 子 9040: ポート 80 でリッスンするスレッドを開始します。

httpd.conf

<IfModule mpm_winnt.c>
  ThreadLimit 2048<br>
  ThreadsPerChild 2000
  MaxRequestsPerChild  0
</IfModule>

IHS 7.0.0.0 OS winNT

ところで、別の懸念ThreadsPerChildは、ここで 1 つの Apache スレッドが 1 つのクライアント接続を処理するのか、それとも 1 つのスレッドが複数のクライアント接続を処理できるのかということです。

私を助けてください。

どうもありがとう

4

1 に答える 1

2

ThreadsPerChild 設定の制限については、 IBM HTTP Server Performance Tuningから引用します。

64 ビットの Windows OS では、の各インスタンスは約 2500 ThreadsPerChild に制限されています。32 ビット Windows では、この数値は 5000 に近くなります。これらの数値は正確な制限ではありません。実際の制限は、スレッドごとのメモリの固定起動コスト + スレッドごとの最大ランタイム メモリ使用量の合計であり、スレッドごとに異なります。構成とワークロード。ThreadsPerChild を上げてこれらの制限に近づくと、実行時のメモリ使用量によってプロセスのアドレス空間が 2GB または 3GB のバリアを超えたときに、子プロセスがクラッシュするリスクがあります。

ここで注目すべき興味深い点は、IHS への同時接続を調整するためのパラメーターは ThreadsPerChild だけではないということです。次のリンクで、他のパラメーター (maxClients など) とチューニング方法に関する情報を見つけることができます。

WebSphere Application Server へのクライアント接続数を最大化するための IBM HTTP Server のチューニング

于 2012-07-06T17:31:35.473 に答える