Analyse serveur dédié : comment trouver les raisons d'un.

WRInaute impliqué
Bonjour,

J'ai un serveur dédié qui héberge une 30aine de sites web. De temps en temps j'ai des pics énormes de charge... Le problème c'est que j'ai un log par site, donc à moins de tous se les tapper pour voir un éventuel probleme, je n'arrive pas à savoir où aller pour analyser ce qui se passe... Je précise que je remarque ça après coup, donc je ne suis pas sur le serveur au moment du problème.
Quelqu'un pourrait me donner une piste?

merci
 
WRInaute occasionnel
Bonjour,

D'abord, dis-nous quel type de serveur tu utilises (windows, linux, ...). Quel serveur web ?

Ensuite, as-tu installé des outils pour générer des graphiques à partir de tes logs (cacti, awstats).

Déjà avec ça tu dois pouvoir identifier à quel moment ont lieu les pics.
Regarde tes graphes pour voir si un site ou l'autre connaît une surchauffe à ces moments-là.

Regarde des cron jobs pour voir s'il y en a un qui bouffe beaucoup de ressources.

à plus

Bruno
 
WRInaute impliqué
Pardon : c'est du linux / apache2 / MySQL et j'ai MRTG installé. On voit bien les pics de charge, d'ailleurs c'est grace à ça que je le remarque.
Ces pics sont inhabituels, je sais quand mes taches cron s'executent et ce n'est pas ça.

Par contre impossible de savoir de quel site il s'agit et c'est bien le problème... Comment savoir?
 
WRInaute occasionnel
Installe un système de statistiques pour tes sites web, soit interne à ton serveur (awstats, piwik), soit externe (Google Analytics, xiti).

à plus
 
WRInaute impliqué
J'ai analytics sur tous les sites... quelle serait la méthode avec analytics pour trouver ces pics? Juste la fréquentation?
 
WRInaute occasionnel
Recif a dit:
J'ai analytics sur tous les sites... quelle serait la méthode avec analytics pour trouver ces pics? Juste la fréquentation?

oui, par exemple, regarde si une augmentation des visites correspond à une augmentation de la charge de la machine.

Tu as peut-être un site qui est mal optimisé (pas de système de cache par exemple) et lorsqu'il reçoit de nombreuses visites, la machine rame.

Connecte-toi également à la machine au moment d'un pic et lance la commande "top" pour voir quels programmes sont sollicités à ce moment-là.

à plus
 
WRInaute impliqué
Donc il n'y a pas d'autre soultion que de se palucher tous les sites un par un? :(
Pour la commande top, oui, c'est ce que je fais, mais je suis rarement sur le serveur au moment d'un pic, et encore après la commande top te dis juste que c'est le process apache ou MySQL, mais ca ne t'avance pas beaucoup plus...
en fait je vouslais savoir si il y avait un moyen sur le serveur lui même de repérer quel site a consommé les ressources lors des pics...
 
WRInaute occasionnel
Recif a dit:
Pour la commande top, oui, c'est ce que je fais, mais je suis rarement sur le serveur au moment d'un pic, et encore après la commande top te dis juste que c'est le process apache ou MySQL, mais ca ne t'avance pas beaucoup plus...
.

Ben si, ça t'avance, tu sais que c'est bien un site web qui cause la surcharge. ça pourrait être mille autres trucs...

Reste plus qu'à savoir lequel... Regarde tes graphs analytics et compare-les avec les graphes MRTG, tu vas bien voir là où ça coince...

Ensuite, optimise tes requêtes SQL, optimise ton code PHP ou autre, installe un système de cache là où c'est possible, et si tout ça est déjà bien fait, tu es alors victime de ton succès, passe sur un serveur plus gros ;-)

à plus
 
WRInaute impliqué
Je suis pas certain qu'il existe un serveur plus gros :wink:
Plus sérieusement, oui, je fais déjà comme ça à l'heure actuelle mais c'est vraiment pas évident, je pensais qu'il existait un méthode plus simple :(
 
WRInaute passionné
Hello,

après tout dépend de la configuration utilisée. Si PHP tourne en suExec/suPHP tu peux très facilement identifier les processus problématiques dans un top.
Mais si PHP est en module Apache, bah... tu vois juste que Apache consomme... et là difficile de savoir ce qui consomme vraiment. Tu peux ajouter quelques champs dans tes logs Apache (temps de réponse par exemple), mais ça n'aide pas tellement plus.
Coté PHP tu peux aussi placer des scripts précis en auto_prepend_file et auto_append_file pour injecter quelques tests ou logs.

Pour MySQL c'est déjà un peu plus simple vu que généralement il y a un compte différent par site. Depuis un "mytop" tu devrais déjà voir les requêtes posant soucis... ainsi que depuis le "log slow queries".
Pour aller plus loin tu peux installer une version patchée de MySQL utilisant le "userstats" de Google (cf : http://ourdelta.org/ ou https://code.launchpad.net/percona-patches ).

Dans tous les cas il faudra procéder par étape, tu ne trouveras pas un script magique te disant directement où est le problème ;)
 
Discussions similaires
Haut