[Serveur dédié] Pb avec Apache

 
miss34
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 14, 2004 6:53

[Serveur dédié] Pb avec Apache

Message le Jeu Déc 09, 2004 0:09

Bonjour, quotidiennement, le soir, je constate un pb avec Apache, ce qui rend l'accès au site difficile.

En fait, quand on fait un apache-status, il n'a jamais de slot libre ( " 0 idle servers " ) alors que les variables min_spare_servers et max_spare_servers du httpd.conf sont respectivement à 10 et 20.

Redémarrer Apache ne résoud pas le pb.

Avez-vous déjà connu ce problème ? Savez-vous ce que je dois faire ?

Merci !

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 0:14

Tu as beaucoup de visiteurs/requetes ?
Tu tournes sous Linux / combien de RAM ?
Tu as quelle version d'Apache ?

20 Spare servers c'est pas beaucoup, mais il faut également savoir à combien ton MaxClients est...


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 0:18

Voici un extrait de ma conf sur Apache 2 (je suis en pre-fork), ce qui est le défaut si tu es également sur Apache 1.

<IfModule prefork.c>
StartServers 50
MinSpareServers 30
MaxSpareServers 80
MaxClients 150
MaxRequestsPerChild 0
</IfModule>

Avec 512 Mo de RAM sur la machine... (mais d'autres services tournent dessus)

Attention à mettre des valeurs pas trop excessives, tu pourrais bouffer inutilement de la RAM avec des processes qui ne serviraient a rien....
Ni mettre un MaxClients delirant....

miss34
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 14, 2004 6:53

Message le Jeu Déc 09, 2004 0:29

Alors j'ai :

MaxClients 150
MinSpareServers 10
MaxSpareServers 20
MaxRequestsPerChild 10000

Ma machine est un P4 1 GO de ram.
Je constate chaque fois ce pb vers 22h , après avoir subi une pointe de fréquentation (environ 800/900 personnes connectées simutanément).
En gros, on dirait qu'Apache a du mal à forker, et donc les requetes ne sont pas traitées. Ca dure qques heures.

Le pire c'est que la charge du serveur reste alors très basse (moins de 0.50 ...) alors je sais pas trop ..

(au fait : je trouve que 80 en maxspareservers ça fait bcp , non ??)

miss34
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 14, 2004 6:53

Message le Jeu Déc 09, 2004 0:37

En gros pour visualiser le pb : voilà ce que j'ai :

Code: Tout sélectionner
Current Time: Wednesday, 08-Dec-2004 23:32:32 CET
Restart Time: Wednesday, 08-Dec-2004 23:27:42 CET
Parent Server Generation: 0
Server uptime: 4 minutes 50 seconds
Total accesses: 9 - Total Traffic: 2 kB
CPU Usage: u.02 s.07 cu0 cs0 - .031% CPU load
.031 requests/sec - 7 B/second - 227 B/request
9 requests currently being processed, 0 idle servers

LWLSS.L......L.......R............R.............................
................................................................
................................................................
................................................................

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"L" Logging, "G" Gracefully finishing, "." Open slot with no current process


" 0 idle servers " >> aucun " Waiting for Connection " >> pas de thread libre pour pouvoir traiter les requetes qui arrivent ....


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 0:42

miss34 a écrit:Alors j'ai :

MaxClients 150
MinSpareServers 10
MaxSpareServers 20
MaxRequestsPerChild 10000

Ma machine est un P4 1 GO de ram.
Je constate chaque fois ce pb vers 22h , après avoir subi une pointe de fréquentation (environ 800/900 personnes connectées simutanément).
En gros, on dirait qu'Apache a du mal à forker, et donc les requetes ne sont pas traitées. Ca dure qques heures.

Le pire c'est que la charge du serveur reste alors très basse (moins de 0.50 ...) alors je sais pas trop ..

(au fait : je trouve que 80 en maxspareservers ça fait bcp , non ??)


900 personnes connectées en meme temps...ca doit bien dépasser les 150 Clients en meme temps...
Augmentes ton MaxClient a 250 par exemple, surtout que tu as 1Go...
En gros ce qui se passe (surtout si ton rush vient en soirée), c'est que les gens dépassent largement les 150 clients utilisés, donc Apache met en queue chaque nouvelle connexion entrante...
Tu as beaucoup de queue, donc forcement les gens s'accumulent ! :D
Et c'est ce qui donne cette impression de machine surchargée...alors que ton load est faible....

Passe a 250 Client, redemarrage Apache, et regarde si ca change....
Je suis sur a 99% que le probleme sera réglé :)

Sinon oui 80 ca fait beaucoup, c'etait sur une machine de test :D
Désolé me suis trompé de machine, je suis à 30 sinon...
Et je n'ai pas 0 MaxRequestPerChild, mais 2000 pour eviter les problemes mémoire sur un processus.


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 0:50

miss34 a écrit:En gros pour visualiser le pb : voilà ce que j'ai :

Code: Tout sélectionner
Current Time: Wednesday, 08-Dec-2004 23:32:32 CET
Restart Time: Wednesday, 08-Dec-2004 23:27:42 CET
Parent Server Generation: 0
Server uptime: 4 minutes 50 seconds
Total accesses: 9 - Total Traffic: 2 kB
CPU Usage: u.02 s.07 cu0 cs0 - .031% CPU load
.031 requests/sec - 7 B/second - 227 B/request
9 requests currently being processed, 0 idle servers

LWLSS.L......L.......R............R.............................
................................................................
................................................................
................................................................

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"L" Logging, "G" Gracefully finishing, "." Open slot with no current process


" 0 idle servers " >> aucun " Waiting for Connection " >> pas de thread libre pou
r pouvoir traiter les requetes qui arrivent ....


Arf c'est étrange !
Tu as plein d'open slot si on en suit ce rapport !?

9 slots avec 900 personnes sur le site ?
C'est parce que le serveur Apache vient d'etre reboote recemment ?

Ton probleme ressemble pourtant typiquement à la machine qui n'a pas assez de slots pour accepter les clients, et c'est logique avec 900 simultanés....

miss34
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 14, 2004 6:53

Message le Jeu Déc 09, 2004 0:57

En fait : durant une heure ou deux, le serveur prend une charge de pointe (la charge dépasse meme les 20 ...) mais toutes les requetes sont traités en moins de 2 secondes donc tout va bien.

Puis lorsque on retombe un peu, d'un coup le Apache "plante" : et ce qui est bizarre , c'est qu'il m'affiche aucun slot susceptible d'accueilir une connexion ... et évidemment comme il traite presque plus rien .. ben la charge tombe à 0.5

meme en redémarrant apache et sql (les deux applis principales) .. rien n'est résolu .. Puis au bout de 2/3 heures, tout redevient à la normale.

(sinon, pour ce que tu me disais , un maxclients de 150 suffit quand tu as 800 connectés car les pages se géneres 0.1 sec et les 800 personnes ne font pas de requetes exactement au meme moment).


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 1:04

miss34 a écrit:(sinon, pour ce que tu me disais , un maxclients de 150 suffit quand tu as 800 connectés car les pages se géneres 0.1 sec et les 800 personnes ne font pas de requetes exactement au meme moment).


150 conviennent sur une machine que j'ai avec 600 personnes connectees....mais mes requetes sont légeres et très rapides, tout est quasiment en texte.

Mais ca ne convient pas du tout pour quelqu'un que je connais, qui avec moins de personnes en ligne, dépasse largement cette limite...

Il avait d'ailleurs des symptomes assez similaires....

Et en allant sur le site de ton profil, on voit qu'il y a des masses de photos, a chaque fois c'est un slot d'Apache qui est bouffé..
(Si tu veux réduire ta charge, il est d'ailleurs souvent préférable d'isoler les images sur un serveur HTTP beaucoup plus léger qu'Apache)

Mais bon d'après ton apache-status et ce que tu dis, c'est plus du tout le cas....

Ton serveur va tout de meme longtemps a 20 de charge pendant une longue période...
Tu parles du reboot d'Apache, mais est-ce la meme chose après le reboot global du serveur ? (si c'est un probleme du kernel ou je ne sais quoi un poil plus systeme)...
Il reste de la RAM dispo ?
Tu swappes beaucoup durant le rush des 20 de charge ?


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 1:04

Que donne un " free -t " ?

miss34
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 14, 2004 6:53

Message le Jeu Déc 09, 2004 1:06

Ca me donne ça :
Code: Tout sélectionner
             total       used       free     shared    buffers     cached
Mem:       1024832     887436     137396          0     105584     655164
-/+ buffers/cache:     126688     898144
Swap:       522104       6800     515304
Total:     1546936     894236     652700


rien d'anormal, si ?


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 1:12

Non tu as un poil swappé, rien d'anormal....
Et il te reste de la RAM....

Dans l'ordre j'essaierais :

Couper / Relancer Apache :

-> apachectl stop

-> "killall httpd" pour etre sur que rien ne traine, on sait jamais :)

-> apachectl start

Si ca change rien, essayer le reboot de la machine, si ca corrige le probleme, c'est un probleme peut-etre plus profond....
Et puis la les problemes avec le kernel c'est moins sympa à trouver :)

Sinon tu as regarde dans les logs d'erreurs d'Apache ?
Il te dit pas des choses interessantes ?

miss34
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 14, 2004 6:53

Message le Jeu Déc 09, 2004 1:33

OUPS !!! Bien joué!!!

j'ai ça en boucle (et ça tombe bien avec les ralentissements) :

Code: Tout sélectionner
[Wed Dec  8 22:31:27 2004] [notice] child pid 28393 exit signal File size limit exceeded (25)


Il semblerait que je me retrouve dans cette situation : http://forums.devshed.com/t134118/s.html?highlight=99%25+CPU+Usage

J'ai tenté de supprimer le error_log .. mais ça ne semble pas trop faire grd chose ...


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 1:43

Ouf tu as du bol, j'ai déjà cette erreur... :D

Mais moi c'etait plus brutal, Apache ne redemarrait plus du tout, pas dans un état second comme le tien....

Ca veut dire que tu as un fichier qui fait plus de 2Go auquel il accede....
Dans 99.99% il s'agit d'un fichier de log qui devient trop gros....

Meme si tu utilises logrotate ou autre, il se peut que la rotation des logs ne soit pas suffisante par rapport a ton trafic et que ton fichier de log soit trop gros....

Si par exemple c'est chaque jour que tu vires ton fichier, après une bonne journée, tu peux saturer les 2go....d'ou le ralentissement le soir...

Ca m'est deja arrivé, sauf que dans mon cas c'etait Apache qui ne fonctionnait plus du tout....

Pour trouver le gros fichier...

du -m dans /usr/local/httpd/logs (si c'est là ton répertoire de logs Apache)....
Et vire, ou mv les fichiers qui sont trop gros (> 1900 M)....

Redemarre ensuite Apache....


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 21:23

Message le Jeu Déc 09, 2004 1:47

Ok tu as édité ton post, ils donnent la meme solution....
Ca semble etre la bonne piste :)

Bonne chance, mais a priori c'est ca.... :D

Sinon 20 de load en rush, c'est très élevé....tu devrais prendre des mesures pour limiter ca....

 
Page suivante

Modérateurs: WebRankInfo, e-kiwi, OTP, fandecine, Patrice A.

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit, Google Web Accelerator



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités