Photographie
Tuner Apache pour les petits serveurs pauvres en mémoire (1)
La machine qui héberge ce serveur web est une boite “kimsufi” chez OVH qui a la particularité de ne disposer que de 256 Mo de RAM. Eh oui on se croirait revenir à l’age de pierre
).
En commenceant ce blog je trouvais que le serveur web était excessivement lent. Je viens d’en trouver la raison. La configuration par défaut du package RPM de apache que nous utilisons démare pas moins de 20 process httpd qu occupent chacun au moins 16 Mo de mémoire résidente. Sans rien faire on arrive déjà à saturer la mémoire physique donc la moitié au moins des process se trouve swappé sur disque dès le démarrage.
Si par malheur une nouvelle connexion tombe sur un des process swappé, le système doit commencer par sortir le process du swap, en faisant éventuellement de la place auparavant en swappant un autre process, puis il peut triater la requète. Ce faisant il perd plusieurs secondes avant de commencer à traiter les requètes.
Partant de ce constat une rapide requète google sur le tuning de apache pour les configurations faibles en mémoire fait remonter le site: http://emergent.urbanpug.com/?p=60 dont je recommande la lecture.
Cela m’a amené à remplacer la configuration par défaut:
<IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule>
Par la configuration suivante:
<IfModule prefork.c> StartServers 1 MinSpareServers 1 MaxSpareServers 6 ServerLimit 256 MaxClients 10 MaxRequestsPerChild 300 </IfModule>
Un redémarrage de Apache suffit pour voir les bienfaits de ce setup. Au démarrage, on ne voit que 2 process (1 démarré par défaut + 1 spare) et ce nombre augmente progressivement pour atteindre le maximum de 6. Je contnuerai le tuning par l’inventaire des modules qu’on peut supprimer pour aléger les process, et par l’examen du KeepAlive.
| Print article | This entry was posted by Vincent on 15 April 2008 at 15:49, and is filed under Linux. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
English
about 2 years ago
Juste quand je me dis qu’il faut que je regarde de près pourquoi mon Apache rame, Vincent apporte la solution sur un plateau. Grâce à toi, mon serveur kimsufi m’suffit toujours!
about 1 year ago
Un énorme merci pour cet article qui m’a sorti du pétrin
about 1 year ago
Je suis heureux que cet article puisse servir. En pratique, il est devenu obsolete pour moi puisque la box qui l’héberge a été remplacée par une machine à 1Gb de RAM, donc maintenant, je peux de nouveau gaspiller la mémoire à gogo