[Tu t'étais fait avoir par le reply-to toi aussi !]

On Monday 27 May 2002 07:17, you wrote:
> > je crois avoir mis en évidence un bug du serveur Apache.
> > Comme tout le monde le sait, mon serveur est sous dimensionné par
> > rapport au  trafic qu'il genere. Il a en effet 64 Mo de Ram (dont 2
> > utilisés par la carte  graphique) et 128 Mo de partition swap. La
> > memoire physique est bien sur  utilisée à 100% dès le démarrage des
> > services de base. Apache, service le  plus gourmand du serveur, est
> > donc obligé de placer la plupart de ses pages  en swap mais on dirait
> > qu'il ne les libère pas (un peu comme la majorités des  programmes
> > Windows et surtout Internet Explorer !). Ce comportement est mis  en
> > évidence par le dernier graphe de la page http://mrtg.zaphebergeur.net.
> >  Cependant, quand j'arrete Apache, il rend au système la totalité des
> > pages  qu'il utilisait. Mais lorsque le serveur est très sollicité la
> > memoire swap  libre baisse, baisse, baisse, jusqu'à planter le serveur
> > de façon pas  élegante du tout !
> > Les relevés de mrtg sont faits sur l'output de la commande free,
> > section swap. Tout ceci n'a rien à voir avec les processus "defunct"
> > parce qu'ils sont  gerés normalement (=quand le parent a fini son
> > boulot il tue les gosses !).
> >
> > Qu'en pensez-vous ? C'est bien un bug d'Apache ?
>
> Combien de processus Apache tournent sur la machine ?

La commande ps -C httpd | wc -l me renvoie 12 lignes donc 11 processus (la 
premiere étant une entete).

>
> Tu peux observer facilement qu'il y a un apache qui tourne
> sous root, et les autres sous l'uid d'apache, souvent nobody
> ou apache.
>
> Tu peux modifier le nombre de processus qu'Apache lance,
> et par conséquent ses besoins en memoire.
>
> Regarde les parametres MinSpareServer et MaxSpareServer
> pour changer ces parametres.

Ils sont encore sur leurs paramètres par défaut, c'est à dire respectivement 
5 et 10.

>
> Ensuite, chaque processus sert un nombre maximal de requettes
> puis se tue, c'est le parametre MaxRequestsPerChild qui decide
> de ca.

Par contre c'est peut-etre ce paramètre là qui rentre en jeu. Il était à 0 
donc infini. Le commentaire dans httpd.conf dit :
"# MaxRequestsPerChild: the number of requests each child process is
# allowed to process before the child dies.  The child will exit so
# as to avoid problems after prolonged use when Apache (and maybe the
# libraries it uses) leak memory or other resources.  On most systems, this
# isn't really needed, but a few (such as Solaris) do have notable leaks
# in the libraries. For these platforms, set to something like 10000
# or so; a setting of 0 means unlimited."

Je ne suis pas sous Solaris mais peut-etre que sans le vouloir j'ai des 
librairies qui ne savent pas bien gerer la memoire et qui y restent meme 
quand on n'a plus besoin d'elles. Je l'ai donc is à 200 pour voir si j'ai un 
gros changement, si oui j'utiliserai la valeur qu'ils conseillent.

>
> Je pense que tu devrais jouer un peu avec ces parametres, qui
> devraient regler tes problèmes de memoire.

Pour l'instant merci beaucoup, si ça ne marche toujours pas je reviendrai à 
l'attaque ! :)

Dario
 
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif



Linux-Azur :      http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****

Répondre à