Bonjour,
Je suis débutante sous Linux donc je n’y connais pas grand chose. J’ai un serveur en production sous Debian 5.0.
Il héberge deux application web en Java (grâce à Tomcat) dont un CMS.
Je me connecte en ssh pour travailler sur ce serveur.
Assez fréquemment, disons 2 fois par jour, j’ai un freez qui dure de 2 à 10 minutes environ. Pendant ce freez je ne peux plus rien faire, la console est inactive (je tape des choses mais rien ne s’affiche, le curseur continue de clignoter simplement), et les pages web ne se chargent pas, le navigateur ne m’affiche pas “page introuvable” ou quoique ce soit qui voudrait dire que la page est inaccessible, il essai pendant 10 minutes de charger la page. Si j’essai de lancer une nouvelle connexion ssh elle finit en timeout.
Au bout d’un certain temps le serveur redevient disponible. Ce que j’avais tapé dans la console finit par s’afficher et les pages web par se charger.
J’ai surveillé le load average, mais la machine semble freezer aléatoirement, cela ne semble pas être lié au load average (parfois il est aux alentours de 1, parfois de 4).
Je n’a pas de message particulier dans syslog.
Je ne sais pas trop où chercher.
Une idée?
Merci
Si tu met un écran dessus tu vois quelque chose pendant le freeze ?
Je ne peux hélas pas tester cela, le serveur étant assez éloigné physiquement…
Ça ressemble plutôt à une coupure réseau. Pour le vérifier regarde dans le /var/log/syslog si il y a eu des évènements majeurs aux heures concernéesz. Il faut chercher des messages disant que des processus ont été tués, etc. Un gel tel que le serveur ssh ne réponde pas est exceptionnel, en fait je ne l’ai pas rencontré. La seul fois où je n’ai pas pu joindre un serveur sous ssh a été lors une offensive spam avec une machine écroulée, la RAM+Swap saturée au point que le DNS entre autres avait été tué. Le plus gros temps d’attente a été de 1mn pour une saturation de bande passante. Le serveur répond il au ping?
Si c’est fréquent, tu peux faire un petit programme qui tourne en boucle et qui écrit un fichier de log régulièrement, ça peut déjà donné une piste.
Non rien de spécial dans le syslog que des logs de dovecot et un envoi mail de postfix et ça :
Mais pour ce dernier message il me semble que c’était un peu tôt (le gel a eu lieu environ à 11h50 aujourd’hui).
Il me semble que j’avais testé de faire un ping et que la machine ne répondait pas, mais à confirmer, je referai un essai lors du prochain Gel.
Ce n’est pas évident à débugger car ces gels n’arrivent pas toutes les 5 minutes, c’est plutôt du 2 à 3 fois par jour et comme je ne travaille pas uniquement sur cette machine je ne les vois pas forcément passer.
J’avais pensé à faire un script du type qui ping la machine en continu (genre toutes les 3 minutes) et qui logguerai les moments où ça freeze (voir qui m’enverrai un mail, ça pourrait être pratique!) mais ne connaissant pas bien le langage j’ai laissé tomber l’idée…
Essaye de faire ce script:
[code]#!/bin/sh
cd /tmp
if /bin/ping -c 10 $1 > /dev/null 2> /dev/null; then
echo -n “.” > /dev/tty8;
else
on reessaye une deuxieme fois
if /bin/ping -c 60 $1 > /dev/null 2> /dev/null; then
logger "Mauvaise connexion ADSL"
evedate "Mauvaise connexion"
else
on reessaye une troisième fois
if /bin/ping -c 60 $2 > /dev/null 2> /dev/null; then
logger "Minable connexion ADSL"
evedate "Minable connexion"
else
logger "Connexion coupée"
evedate "Connexion coupée"
date >> /var/log/ADSL.log
#là tu peux mettre de quoi relancer la connexion
fi;
fi;
fi;
[/code]
Il te faut le lancer régulièrement par exemple par une ligne
[*/3] * * * * root /usr/local/bin/testconnexion 82.66.248.254 82.246.92.254 > /dev/null
dans /etc/crontab.
testconnexion est le nom du script à mettre dans /usr/local/bin, les deux IPs sont des IPs qui répondent aux pings. La connexion est testée toutes les 3 minutes (le */3). Tu sauras l’état de la connexion.
Ok j’ai mis en place le script
Mauvaise nouvelle, quand la machine freez elle réponds quand même au ping, donc mon script ne sert à rien
Par contre ce n’est pas une debian mais une ubuntu, je suis mal renseignée…
est ce que les temps de réponse sont comparables aux temps de réponse quand elle ne freeze pas ?
Je ferai le test lors du prochain freez =)
[quote=“Kahya”]Non rien de spécial dans le syslog que des logs de dovecot et un envoi mail de postfix et ça :
Ça c’est normal. C’est le Garbage Collector des sessions PHP à la mode Debian.
Un autre petit script (à lancer par cron) pour faire un snapshot des processus et ce qu’ils consomment en mémoire et CPU:
[code]#! /bin/bash
SEPARATOR="= = = = = = = = = = = = = = = = = = = = = = = = = = = = ="
printf “%s\n%s\n%s\n%s\n\n” “$SEPARATOR” “$(date)” “$SEPARATOR” “$(top -b -n1)” >> /tmp/top.log
[/code]
Un “top” toutes les 5 minutes par exemple.