Table des matières

Diagnostique Système

Comment répondre aux questions suivantes:

Cet article est encore une ébauche

Méthode

On part du général vers le particulier, c'est à dire l'état général de la machine, puis d'une ou quelques métrique pour enfin aller au détail processus par processus. Ce faisant on évite de se focaliser sur un problème local et de louper un problème plus important au niveau global.

Avant de qualifier un bon ou un mauvais fonctionnement, il faut l'étalonner (i.e. connaître les limites théorique et pratique). Deux exemples pour illustrer:

Santé générale d'un serveur

Outils en vracs:

Difficultés

Un système parfaitement fonctionnel au niveau matériel mais surchargé, a du mal à indiquer l'origine d'un problème. Par exemple, si il y a une surcharge au niveau des disque (le temps d'accès I/O va s'allonger) alors le moindre processus qui fait une demande d'accès disque va se retrouver dans le top des consommateurs d'I/O disque pour un instant, puis ça sera le suivant. Du point de vue de l'administrateur système, c'est le syndrome du “tous coupables”. Pour déterminer le véritable coupable dans ce type de situation, il faut monitorer pendant la montée en charge avant que la charge ne sature le système.

Lorsqu'il y a un problème d'ordre matériel, alors par construction, la remontée d'information ne sera pas fiable. Si le cpu et/ou la RAM renvoie de fausses informations, il y a toute chance que le système plante. Ça peut être aussi le cas d'un composant sur la carte mère. Je me demande même si dans le cas d'un contrôleur disque défaillant, celui ci pourrait introduire de la latence qui ne sera pas comptabilisé ni dans la consommation des I/O disques générales ni par processus mais l'IOwaitTime du CPU pourrait trahir ce genre de comportement.

Dans ce genre de cas, on va chercher à mettre en cause composant par composant en essayant de les faire échouer pour savoir à qui on peut faire confiance. Tests de la mémoire RAM (memtest86, memtester), test de surcharge du CPU (stress test, cpu burn). Ces tests sont plus compliquer à mener car ils impliquent au mieux un service dégradé ou arrêté et au pire des dégâts irréversible (un cpuburn sur un microprocesseur sans radiateur va le griller).