ver trafico simultaneas rendimiento para optimizar numero memoria maxclients configurar conexiones aumentar alto apache

trafico - optimizar apache+php



¿Cómo se aumenta la cantidad máxima de conexiones simultáneas en Apache? (2)

Aquí hay una explicación detallada sobre el cálculo de MaxClients y 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

En primer lugar, cada vez que se inicia un apache, iniciará 2 procesos secundarios que se determinarán mediante el parámetro StartServers . Luego, cada proceso iniciará 25 subprocesos determinados por el parámetro ThreadsPerChild , lo que significa que 2 process puede atender solo a 50 conexiones / clientes concurrentes, es decir, 25x2 = 50. Ahora, si llegan más usuarios simultáneos, se iniciará otro proceso secundario que puede dar servicio a otros 25 usuarios. Pero el número de procesos secundarios que se pueden iniciar está controlado por el parámetro ServerLimit , esto significa que en la configuración anterior, puedo tener 16 procesos hijos en total, con cada proceso hijo puede manejar 25 hilos, en total manejo 16x25 = 400 usuarios simultáneos. Pero si el número definido en MaxClients es menor, que es 200 aquí, entonces esto significa que después de 8 procesos secundarios, no se iniciará ningún proceso adicional ya que hemos definido un límite superior de MaxClients . Esto también significa que si configuro MaxClients en 1000, después de 16 procesos secundarios y 400 conexiones, no se iniciará ningún proceso adicional y no podremos dar servicio a más de 400 clientes concurrentes, incluso si aumentamos el parámetro MaxClient . En este caso, también necesitamos aumentar ServerLimit a 1000/25, es decir, MaxClients/ThreadsPerChild=40 Esta es la configuración optimizada para el servidor de 1000 clientes.

<IfModule mpm_worker_module> ServerLimit 40 StartServers 2 MaxClients 1000 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>

¿Qué configuración de httpd conf debo modificar para aumentar el número máximo de conexiones simultáneas para Apache? NOTA: apagué KeepAlive ya que este es principalmente un 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 <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> # 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 <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>


cambiar la directiva MaxClients. ahora está en 256.