Httpd.confを編集して、最大1,000のクライアント接続を受け入れたいと思います。これは私が今持っているものです:
StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild4000 StartServers 2 MaxClients150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild25 MaxRequestsPerChild 0
どのように編集すればよいですか?
リクエストを処理するのに十分なRAMがあり、プリフォークマルチプロセッシングモジュールを使用しているとすると、2つのディレクティブMaxClients
とServerLimit
を使用できます。処理される同時リクエストの総数を設定します。
プリフォークを確認するには、apachectl -V | grep MPM
を実行し、次の出力を探します。
# apachectl -V | grep MPM
Server MPM: Prefork
-D Apache_MPM_DIR="server/mpm/prefork"
MaxClients ディレクティブは、処理される同時リクエストの数の制限を設定します。
MaxClientsの制限を超える接続の試行は、通常、ListenBacklogディレクティブに基づく数までキューに入れられます。別のリクエストの終了時に子プロセスが解放されると、接続が処理されます。
ただし、ServerLimit
は、Apacheがリクエストを処理するために生成するプロセスの数にも上限を設けています。
プリフォークMPMの場合、ServerLimitディレクティブは、Apacheプロセスの存続期間中のMaxClientsの最大構成値を設定します。
したがって、私は次のようなものを選びます。
ServerLimit 1000
MaxClients 1000
または、For the worker MPM, this directive in combination with ThreadLimit sets the maximum configured value for MaxClients for the lifetime of the Apache process. Any attempts to change this directive during a restart will be ignored
ワーカーの場合 ThreadLimit docs here