Como você aumenta o número máximo de conexões simultâneas no Apache?

Que configurações de httpd conf preciso alterar para aumentar o número máximo de conexões simultâneas para o Apache? NOTA: Eu desliguei o KeepAlive, já que este é principalmente um servidor de API.

# # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # KeepAlive Off # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 100 # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 15 ## ## Server-Pool Size Regulation (MPM specific) ## # prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # ServerLimit: maximum value for MaxClients for the lifetime of the server # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves  StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000  # worker MPM # StartServers: initial number of server processes to start # MaxClients: maximum number of simultaneous client connections # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # ThreadsPerChild: constant number of worker threads in each server process # MaxRequestsPerChild: maximum number of requests a server process serves  StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0  

Aqui está uma explicação detalhada sobre o cálculo de MaxClients e MaxRequestsPerChild

http://web.archive.org/web/20160415001028/http://www.genericarticles.com/mediawiki/index.php?title=How_to_optimize_apache_web_server_for_maximum_concurrent_connections_or_increase_max_clients_in_apache

 ServerLimit 16 StartServers 2 MaxClients 200 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 

Primeiro de tudo, sempre que um apache é iniciado, ele irá iniciar 2 processos filhos que são determinados pelo parâmetro StartServers . Em seguida, cada processo iniciará 25 threads determinados pelo parâmetro ThreadsPerChild que significa que 2 processos podem atender apenas 50 conexões / clientes simultâneos, ou seja, 25×2 = 50. Agora, se mais usuários simultâneos vierem, outro processo filho será iniciado, podendo atender outros 25 usuários. Mas quantos processos filho podem ser iniciados é controlado pelo parâmetro ServerLimit , isso significa que na configuração acima, eu posso ter 16 processos filhos no total, com cada processo filho pode manipular 25 segmentos, no total manipulando 16×25 = 400 usuários simultâneos. Mas se o número definido em MaxClients for menor que é 200 aqui, isso significa que após 8 processos filho, nenhum processo extra será iniciado, já que definimos um limite superior de MaxClients . Isso também significa que se eu definir MaxClients para 1000, após 16 processos filho e 400 conexões, nenhum processo extra será iniciado e não poderemos atender mais de 400 clientes simultâneos, mesmo que tenhamos aumentado o parâmetro MaxClient . Neste caso, precisamos também aumentar o ServerLimit para 1000/25, ou seja, MaxClients/ThreadsPerChild=40 Então esta é a configuração otimizada para o servidor 1000 clientes

  ServerLimit 40 StartServers 2 MaxClients 1000 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0  

altere a diretiva MaxClients. agora está em 256.