Forum général.général directive KeepAlive
bonjour a tous,
j'ai un serveur web apache 2 sur redhat el5. lorsque j'ai la directive KeepAlive d'activée, j'ai des pointes en charge cpu qui vont jusqu'a 72% voir 80%.
du coup je l'ai desactivée. voici la configue concernant le keepalive:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
pour le prefork mpm
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
pour le worker mpm
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
sur ce serveur je n'ai que des sites developpés en php.
j'aurrais aimé savoir dans quel cas utilisé la directive keepalive ?
est elle gérée de maniere correcte dans mon cas ?
# RTFM
Posté par LaBienPensanceMaTuer . Évalué à 3.
http://httpd.apache.org/docs/2.0/mod/core.html#keepalive
j'aurrais aimé savoir dans quel cas utilisé la directive keepalive ?
Globalement, le keepalive te permet de garder la connexion au client ouverte pour ses prochaines requêtes.
Tu économises donc toute la phase de connexion ...
est elle gérée de maniere correcte dans mon cas ?
est elle gérée de maniere correcte dans mon cas ?
On rentre ici dans le domaine du tuning Apache assez fin.
Sans des données telles que le traffic de ton site, la durée d'une session de surf standard, le nombre de clients simultanés, etc.. on ne peut pas t'aider.
[^] # Re: RTFM
Posté par malakof . Évalué à 1.
oui j'ai vu la doc, mais pour le coup ça ne me disait pas trop si dans mon cas je devais l'activer ou non (avec des reglage adequat). pour le coup vu la montée en charge cpu je pense qu'il valait mieux la couper.
c'est vrais que je donne pas beaucoup d'info pour le tuning :-p
j'ai collé un awstat sur les sites du serveur. y a 3 sites.
en gros en bande passante sur les 15 premiers jours d'avril ça donne
3.4gb , 1.4gb, 18.81gb . par jour ça donne respectivement du
160 a 300 Mb, 50 a 200 Mb, 800Mb a 1.5Gb.
en terme de durée de visites respectivement c'est:
72% entre 0-30sec, 51.7% entre 0-30, 68% entre 0-30sec
par jours j'ai respectivement aussi:
en moyenne 30000 hits, entre 16000 et 50000 hits, 13000 hits.
bon je ne sais pas si ça peut aider comme infos :(
[^] # Re: RTFM
Posté par LaBienPensanceMaTuer . Évalué à 2.
Tu peux dans ce cas soit le desactiver, soit mettre un timeout court afin
de que le fils ayant géré les requêtes se termine rapidement.
Il y a pas mal de papier sur le sujet sur le net, en voici un expliquant assez bien les impacts de ces directives:
http://virtualthreads.blogspot.com/2006/01/tuning-apache-par(...)
[^] # Re: RTFM
Posté par malakof . Évalué à 0.
oui j'ai vu la doc, mais pour le coup ça ne me disait pas trop si dans mon cas je devais l'activer ou non (avec des reglage adequat). pour le coup vu la montée en charge cpu je pense qu'il valait mieux la couper.
c'est vrais que je donne pas beaucoup d'info pour le tuning :-p
j'ai collé un awstat sur les sites du serveur. y a 3 sites.
en gros en bande passante sur les 15 premiers jours d'avril ça donne
3.4gb , 1.4gb, 18.81gb . par jour ça donne respectivement du
160 a 300 Mb, 50 a 200 Mb, 800Mb a 1.5Gb.
en terme de durée de visites respectivement c'est:
72% entre 0-30sec, 51.7% entre 0-30, 68% entre 0-30sec
par jours j'ai respectivement aussi:
en moyenne 30000 hits, entre 16000 et 50000 hits, 13000 hits.
bon je ne sais pas si ça peut aider comme infos :(
# KeepAlive off
Posté par Xarli (site web personnel) . Évalué à 1.
L'excellent site de Willy Tarreau donne une très bonne explication : http://1wt.eu/articles/2006_lb/index_10.html#tune
# KeepAliveTimeout
Posté par Sébastien Koechlin . Évalué à 4.
Sur un serveur qui sert 4 pages par jour; sur la machine d'un développeur, on peut mettre un Timeout à plusieurs secondes; mais le gain est vraiment ridicule.
Sur un serveur web dont c'est le boulot principal et qui travail pas mal; le KeepAliveTimout doit être réduit au strict minimum:
- Si le navigateur est en train d'afficher une page et qu'il a besoin d'une douzaine d'éléments (CSS, javascript, Images...), il doit pouvoir recycler les connexions (normalement il n'en ouvre que deux).
- Si le navigateur a terminé de charger tous les éléments de la page, alors il faut fermer la connexion.
Donc il faudrait pouvoir régler le KeepAliveTimeout à 300 ou 400ms; mais ce n'est pas possible.
Du coup, je règle toujours le KeepAliveTimout à 1; c'est le meilleur compromis que j'ai trouvé entre économiser sur l'établissement de connexions et ne pas trainer des connexions ouvertes pour rien.
# Valeur grosse très inutile
Posté par Christie Poutrelle (site web personnel) . Évalué à 1.
Même 15, c'est limite trop, vaut mieux parfois refaire 5 connection d'affilée plutôt que de bloquer 3 thread pendant 15 secondes.
En mettant un KeepAlive très bas, seulement des choses comme les images ou autre auront le temps de passer dans la même connection, et c'est largement suffisant si t'as beaucoup d'utilisateurs en même temps, et si ils jouent pas au clickodrome.
Sinon si t'as que 5 utilisateurs, et qu'ils font joujou à cliquer vingt mille fois par jour, vaut mieux un gros KeepAlive.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.