2010-08-02 19 views
80

Quels paramètres de configuration httpd dois-je modifier pour augmenter le nombre maximal de connexions simultanées pour Apache? Remarque: j'ai désactivé KeepAlive car il s'agit principalement d'un serveur API.Comment augmenter le nombre maximal de connexions simultanées dans 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> 

Répondre

6

modifiez la directive MaxClients. il est maintenant sur 256.

+1

Voici les docs: http://httpd.apache.org/docs/ 1.3/mod/core.html # maxclients – NullUserException

138

Voici une explication détaillée sur le calcul des MaxClients et 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 

Tout d'abord, chaque fois qu'un apache est lancé, il va commencer 2 processus enfants qui est déterminé par le paramètre StartServers. Ensuite, chaque processus démarrera 25 threads déterminés par le paramètre ThreadsPerChild, ce qui signifie que 2 processus ne peuvent desservir que 50 connexions/clients simultanés, c'est-à-dire 25x2 = 50. Maintenant, si plus d'utilisateurs simultanés arrivent, alors un autre processus enfant démarrera, capable de desservir 25 autres utilisateurs. Mais combien de processus enfants peuvent être démarrés est contrôlé par le paramètre ServerLimit, cela signifie que dans la configuration ci-dessus, je peux avoir 16 processus fils au total, chaque processus enfant pouvant gérer 25 threads, pour un total de 16x25 = 400 utilisateurs simultanés. Mais si le nombre défini en MaxClients est inférieur à 200 ici, cela signifie qu'après 8 processus enfants, aucun processus supplémentaire ne commencera puisque nous avons défini une limite supérieure de MaxClients. Cela signifie également que si je mets MaxClients à 1000, après 16 processus enfants et 400 connexions, aucun processus supplémentaire ne démarrera et nous ne pourrons pas gérer plus de 400 clients simultanés même si nous avons augmenté le paramètre MaxClient. Dans ce cas, nous devons également augmenter ServerLimit à 1000/25-à-dire MaxClients/ThreadsPerChild=40 C'est donc la configuration optmized au serveur 1000 clients

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

Il semble y avoir quelques changements après la version 2.3.13. Par exemple MaxClients est maintenant MaxRequestWorkers. –

+1

S'il vous plaît conseiller: le site lié est actuellement au service des logiciels malveillants (et porno) ... Il est probablement piraté ... Assez anoying si vous êtes au travail à la recherche d'une solution sur stackoverflow et un site porno complet s'ouvre ... https://sitecheck.sucuri.net/results/www.genericarticles.com – yoano

+1

le lien semble ne fonctionne pas –

Questions connexes