2010-08-02 69 views
80

¿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.¿Cómo se aumenta la cantidad máxima de conexiones simultáneas en Apache?

# 
# 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> 

Respuesta

6

cambiar la directiva de MaxClients. que ahora está en 256.

+1

Aquí están los documentos: http://httpd.apache.org/docs/ 1.3/mod/core.html # maxclients – NullUserException

138

He aquí 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, que comenzará a 2 procesos secundarios los cuales está determinado por el parámetro StartServers. Entonces, cada proceso iniciará 25 subprocesos determinados por el parámetro ThreadsPerChild, lo que significa que 2 procesos puede atender solo a 50 conexiones/clientes simultáneos, 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 cuántos procesos secundarios pueden iniciarse están controlados 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 manejo total 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 establezco MaxClients en 1000, después de 16 procesos hijo y 400 conexiones, no se iniciará ningún proceso adicional y no podemos dar servicio a más de 400 clientes concurrentes, incluso si tenemos aumentar el parámetro MaxClient. En este caso, necesitamos también aumentar ServerLimit a 1000-25 es decir MaxClients/ThreadsPerChild=40 Así que esta es la configuración del servidor optmized a 1000 clientes

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

Parece haber algunos cambios después de la versión 2.3.13. Por ejemplo, MaxClients ahora es MaxRequestWorkers. –

+1

Por favor, avise: el sitio vinculado actualmente está sirviendo malware (y porno) ... Probablemente esté pirateado ... Bastante molesto si está trabajando buscando una solución en stackoverflow y se abre un completo sitio porno ... https://sitecheck.sucuri.net/results/www.genericarticles.com – yoano

+1

el enlace parece que no funciona –

Cuestiones relacionadas