Directive MaxClients de Apache2

logo beeznest

Un article particulièrement intéressant au sujet de l’optimisation d’Apache2 peut être trouvé ici: http://ftp.traduc.org/doc-vf/gazette-linux/html/2006/123/lg123-D.html#AEN213

En particulier pour la directive MaxClients:

La directive MaxClients fixe la limite maximale de requêtes simultanées que le serveur peut prendre en charge ; aucun processus enfant au-delà de ce nombre n’est engendré. Il ne devrait pas être défini à une valeur trop basse, sinon un nombre toujours croissant de connexions sont reportées dans la file d’attente et occasionnent finalement un dépassement du temps imparti, alors que les ressources du serveur restent inutilisées. Si vous lui donnez une valeur trop élevée, en revanche, le serveur commencera à « swapper », ce qui fera diminuer considérablement le temps de réponse. La valeur appropriée pour MaxClients peut être calculée ainsi :

4 MaxClients = Mémoire vive totale dédiée au serveur web / Taille maximale des processus enfants.

La taille des processus enfants destinés à prendre en charge des fichiers statiques est d’environ 2 à 3 Mo. Pour du contenu dynamique tel que PHP, elle peut être aux environs de 15 Mo. La colonne RSS dans ps -ylC httpd –sort:rss affiche l’utilisation de la mémoire physique non permutée par des processus Apache en kilooctets.

S’il y a plus d’utilisateurs simultanés que MaxClients, les requêtes seront mises en file d’attente jusqu’à un nombre défini en fonction de la directive ListenBacklog. Augmentez ServerLimit pour régler MaxClients au-dessus de 256.