Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/11/2011, 01h21   #1
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 2
Points : 2
Par défaut Problème de configuration de serveur web

Bonjour,

Je suis entrain de me battre avec la configuration de mon serveur, et je n'arrive à rien. Voici des infos sur le serveur :

Hardware : Processor E5620 2400 Mhz 2 CPU 4 Cores, 8 GB RAM
OS : Linux version 2.6.32-5-amd64 (Debian 2.6.32-38) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Oct 3 03:59:20 UTC 2011

La machine n'héberge qu'un seul site internet mais qui a un gros traffic (1 million de pages vues par jour, 4000 visiteurs simultanés aux heures de pointes), pas de streaming, pas de fichiers hébergés sur le serveur à télécharger, juste des pages web et des images, qui sont déjà pas mal optimisées (compressées, sprites, mise en cache,..).

J'ai donc installé dessus PHP5, Apache/2.2.16 (Debian), MySQL 5.1.49 et qques autres trucs sans importances.

Mon soucis est que Apache ne répond pas du tout comme je le souhaite.
Lorsque je fais un top, je vois le process mysqld qui tourne entre 10 et 50%, et tous les process apache2 qui suivent, qui tournent entre 0 et 2%. Au niveau des CPU(s) used, même à l'heure de pointe ca dépasse pas 10%.

Le soucis est que de temps en temps, Apache me lache, dans mon top je vois tous les process disparaitr et finalement ne reste que le process mysqld.. Si je lance un "service apache2 statuts", ca me dit running..
Si je ne fais rien et que j'attends quelques secondes (parfois 1-2 minutes), ca se relance tout seul, et les process reviennent.

En dehors de ça, il est parfois quasiment impossible de se connecter à l'heure de pointe sur le site, comme si Apache ne répondait pas, où était surchargé.. Pourtant le serveur est loin d'utiliser sa pleine capacité....


Je vous file les valeurs critiques de la config d'apache :

/etc/apache2/apache2.conf

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Timeout 20
KeepAlive Off
MaxKeepAliveRequests 300
KeepAliveTimeout 10

<IfModule mpm_prefork_module>
    StartServers         10
    MinSpareServers    10
    MaxSpareServers      50
    ServerLimit         512
    MaxClients          512
    MaxRequestsPerChild 400
</IfModule>
<IfModule mpm_worker_module>
    StartServers         10
    MinSpareThreads      20
    MaxSpareThreads     100
    ThreadLimit         128
    ThreadsPerChild      20
    ServerLimit         512
    MaxClients          512
    MaxRequestsPerChild 400
</IfModule>
<IfModule mpm_event_module>
    StartServers         10
    ServerLimit         512
    MaxClients          512
    MinSpareThreads      20
    MaxSpareThreads     100
    ThreadLimit         128
    ThreadsPerChild      20
    MaxRequestsPerChild 400
</IfModule>
/etc/php5/apache2/php.ini

Code :
1
2
max_execution_time=30
memory_limit = 64M
/etc/mysql/my.cnf

Code :
1
2
3
4
5
6
7
8
9
10
11
key_buffer              = 64M
max_allowed_packet      = 32M
thread_stack            = 384K
thread_cache_size       = 64M

max_connections        = 500
table_cache            = 256M
thread_concurrency     = 16

query_cache_limit       = 4M
query_cache_size        = 256M
Dans mon phpmyadmin, mon max de connexions simultanées est 380 (c'est élevé mais je crois que c'est à cause des problèmes de lags tout ça).
Le traffic est d'un giga par heure en moyenne, 100 requêtes par seconde en moyenne.

Mais mysql m'a l'air de tourner tout à fait correctement contrairement à Apache.
J'ai cherché sur les forums, lu des trucs concernant tel ou tel paramètre, essayé une multitudes de valeurs, peut-être je les combinais mal je sais pas, mais ça commence à durer et les visiteurs en ont marre et moi plus qu'eux encore.

J'avais ces soucis sur un précédent serveur, j'ai pris celui ci beaucoup plus puissant que l'ancien, et rien ne change, c'est même parfois pire.. Je suis certain que c'est un soucis de config. Un expert résoudrait probablement ça en 10 minutes chrono..

Si quelqu'un a des solutions à me proposer, ou connait quelqu'un qui s'y connait en configuration serveur web linux et qui serait prêt à m'aider, une aide serait vraiment la bienvenue.

Merci d'avance de m'avoir lu, j'espère que ces infos peuvent vous servir.
Redarche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 15h23   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 295
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 295
Points : 8 575
Points : 8 575
Je suis nul en perf, je n'y connais rien, donc il y a peu de chances que je t'aide, mais on ne sait jamais. Il y a quoi dans les logs d'erreur d'Apache et dans le syslog du système au moment du crash ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 21h16   #3
Invité de passage
 
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 2
Points : 2
Bonjour,

Je ne suis pas "expert" apache, mais je veux bien mettre la main à la patte.
Dans un premier temps ce que j'ai pu voir, les valeurs "KeepAlive" et "KeepAliveTimeout" peuvent être ajustés.
Essaye de passer le KeepAlive à "ON" cela évitera d'ouvrir une connexion à chaque chargement de contenu HTML/image. Je pense que ca déchargera le serveur étant donnée les nombreuses images présentent sur le site.
Ensuite le deuxième paramètre qui va de paire "KeepAliveTimeout", cette valeur détermine le temps avant le traitement d'une nouvelle requête. Il conseille de descendre la valeur entre deux et cinq secondes...

Je pense que tu as déjà cherché, mais si tu regardes sur le lien que je te passe ci-dessous tu devrais pouvoir t'en sortir.

http://www.howtoforge.com/configurin...um_performance

Pourrais-tu nous donner les valeurs que tu as déjà essayé de changer ?
xniavx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 22h12   #4
Invité de passage
 
Inscription : septembre 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 6
Points : 3
Points : 3
Bonsoir
Et que donnent les logs
-syslog et autres ..?
que donnent ps -aux?
Depuis combien de temps n'avez vous pas redémarré votre serveur ? Que donne free -m ? (RAM pleine?... )


Bon courage
systeme_p est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 19h35   #5
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 2
Points : 2
Bonsoir !

Il s'est passé du temps depuis mon post, effectivement j'ai testé toutes sortes de valeurs de mon côté, sans jamais trouver la bonne combinaison je pense.

La commande free -m me donne ceci :

Code :
1
2
3
4
             total       used       free     shared    buffers     cached
Mem:          7997       7595        401          0        452       5340
-/+ buffers/cache:       1802       6194
Swap:         3906         18       3887
Je sais que ma mémoire est pleine hein, c'est un peu normal.

Voici les valeurs que j'ai changées :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Timeout 20
KeepAlive Off
MaxKeepAliveRequests 0
KeepAliveTimeout 5

<IfModule mpm_prefork_module>
    StartServers         20
    MinSpareServers    20
    MaxSpareServers      500
    MaxClients          250
    MaxRequestsPerChild 100
</IfModule>
<IfModule mpm_worker_module>
    StartServers         20
    MinSpareThreads      20
    MaxSpareThreads     100
    ThreadLimit         128
    ThreadsPerChild      20
    MaxClients          250
    MaxRequestsPerChild 100
</IfModule>
<IfModule mpm_event_module>
    StartServers         15
    MaxClients          150
    MinSpareThreads      20
    MaxSpareThreads     100
    ThreadLimit         128
    ThreadsPerChild      20
    MaxRequestsPerChild 100
</IfModule>
Sinon la commande ps -aux me donne une tonne de lignes telles que celle-ci :

Code :
www-data   482  0.1  0.2 352832 19256 ?        S    19:18   0:00 /usr/sbin/apache2 -k start
ainsi que la ligne mysql :

Code :
mysql    13865 35.1  5.3 1497368 441420 ?      Sl   Nov18 7035:22 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid .........
et d'autres lignes en tous genres.

J'ai aussi mis en place fail2ban, ainsi qu'eaccelerator.

J'ai l'impression que le serveur va déjà mieux, même si c'est pas encore extraordinaire.

Je n'ai pas mis le KeepAlive à On, car quand je le mets, j'ai l'impression que c'est pire. Je m'explique quand je demande une page du serveur, et bien ça tourne dans le vide pendant parfois 5-6 secondes, et puis une fois que la connexion est établie tout va très vite. Ca ne le fait pas tout le temps, mais suffisamment pour énerver rapidement.

J'ai l'impression qu'augmenter le MaxClient et le MaxServers a amélioré les choses. C'est possible?

Dernière info le serveur a été redémarré y a 23 jours. Ce n'est pas beaucoup.

Ah oui et pour le fichier /var/log/syslog, il contient principalement des lignes sur l'envoi d'emails, mais je remarque que y doit surement y avoir un bug qque part là dedans car j'ai des centaines de lignes qui se ressemblent, par exemple :

Code :
Dec  2 06:44:04 redlist sm-mta[1169]: pARGoVwY006313: to=<roseline@cite.net>, ctladdr=<www-data@localhost> (33/33), delay=4+12:53:33, xdelay=00:00:01, mailer=esmtp, pri=58981979, relay=smtp5.vid$
Merci à vous de chercher avec moi :-)
Redarche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2011, 18h56   #6
Invité de passage
 
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 2
Points : 2
La valeur Maxclients peut avoir un impact assez important si elle est mise trop haute. Je pense que tu veux dire "diminuer" plutôt que augmenter car dans le premier Post, MaxClient = 512 et maintenant Maxclients = 250 ) Cette valeur là se calcul :

In English :
" Appropriate value for MaxClients can be calculated as: MaxClients = Total RAM dedicated to the web server / Max child process size ---- [4] Child process size for serving static file is about 2-3M. For dynamic content such as PHP, it may be around 15M."

Si tu as 4 go de RAM dédié à Apache :

4096 / 15 = 273 pour le MaxClients

Fail2ban ne te fait pas gagner directement en perf, mais en bannant des requêtes inutiles, ont fini par y gagner réellement, donc c'est possible. Essaye de voir du coté des logs de F2B pour voir si il as une bonne activé...

JE te conseillerai également de descendre le MaxSpareServeur, car la création de proccess bouffe pas mal de ressource et surtout bloque les requêtes clients. Diminue le au moins de moitité (500 => 250 voir 200 )

Sur ce genre de problème, le mieux est de mettre en place une "supervision" puis de changer paramètre par paramètre sur une plage de temps donnée (2 jours par ex), puis d'analyser pour voir si les temps de réponse sont meilleur ou pas.

Sinon, on ne sait jamais si on vas dans la bonne direction !

Petit plus : Etant utilisateur du site, je peux dire que je n’ai pas eut de ralentissement gênant ces derniers jours.
xniavx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h09.


 
 
 
 
Partenaires

Hébergement Web