web-dev-qa-db-ja.com

1,000の接続を受け入れるようにhttpd.confを設定する-方法

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 

どのように編集すればよいですか?

1
edotan

リクエストを処理するのに十分なRAMがあり、プリフォークマルチプロセッシングモジュールを使用しているとすると、2つのディレクティブMaxClientsServerLimitを使用できます。処理される同時リクエストの総数を設定します。

プリフォークを確認するには、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

2
Tom H