Forum Linux.général Gros problèmes de performances avec Apache 2

Posté par  (site web personnel) .
Étiquettes :
0
19
août
2005
Si il y a des admin Web expérimentés dans le coin, j'ai besoin de vos lumières.

On a installé Apache 2 / PHP 5 sur notre nouveau serveur dédié fourni par Sivit, sous Debian Sarge.

L'installation s'est fait par paquets :

`--> dpkg -l | grep apache2
ii apache2 2.0.54-4 next generation, scalable, extendable web se
ii apache2-common 2.0.54-4 next generation, scalable, extendable web se
ii apache2-mpm-pr 2.0.54-4 traditional model for Apache2
ii apache2-utils 2.0.54-4 utility programs for webservers
ii libapache2-mod 5.0.4-0.9sarge HTML-embedded scripting language (apache 2.0


Il me semble que la version apache2-mpm-prefork est toujours recommandée avec PHP5.

On lance le serveur, tout va bien, le nombre de process augmente progressivement jusqu'à la limite de 20 indiqué dans le fichier de configuration (le serveur héberge essentiellement un forum IPB assez fréquenté et plusieurs sites basés sur le CMS Typo3).
Et là, tout s'écroule, les pages mettent 5 minutes à s'afficher, un peu comme si on était sur une sorte de liste d'attente qui n'avance pas.

Pour le moment on a augmenté la limite jusqu'à 35 (au delà ça prend trop de RAM et ça swappe, ce qui écroule aussi les perfs).


# 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
# MaxClients ........... maximum number of server processes allowed to start
# MaxRequestsPerChild .. maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 35
MaxRequestsPerChild 0
</IfModule>


Quelqu'un aurait une idée de la source du problème ? Je soupçonne un peu le "KeepAlive" :

# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.

KeepAlive On

# 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


Effectivement en désactivant le KeepAlive, le nombre de process reste stable entre 20 et 25 et la navigation relativement fluide, mais le load average du serveur oscille entre 1 et 2, ce qui me paraît plutôt élevé...

Des avis?
  • # et pourquoi pas autre chose que le prefork ??

    Posté par  . Évalué à 1.

    Il me semble que la version apache2-mpm-prefork est toujours recommandée avec PHP5.
    Bon d'accord
    We do not recommend using a threaded MPM in production with Apache2. Use the prefork MPM instead, or use Apache1. For information on why, read the related FAQ entry on using Apache2 with a threaded MPM (aide php)
    Mais aussi c'est pas rapide
    It is not as fast, but is considered to be more stable. (http://packages.debian.org/stable/net/apache2-mpm-prefork(...) )

    Donc si tu as la possibilité de tester avec apache2-mpm-worker et que les threads ne font pas chier ton appli pourquoi se priver ???

    Autre truc qui me passe par la tête : vérifie (via netstat) l'état des connections en particulier vierfie que le serveur n'est pas surchargé de connection en cours de fermeture (apache 1 n'aime pas du tout ce genre de situation :()

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.