📄 contenu.md 🔒 23139385…efe6902f Se connecter pour télécharger ← Retour
# 9. Observabilité et diagnostic

Cette section couvre les systèmes de fichiers virtuels d'introspection du
noyau et les outils de diagnostic de premier recours — la boîte à outils
minimale pour comprendre l'état réel d'un système en fonctionnement.

## /proc — l'état du noyau exposé en fichiers

`/proc` est un système de fichiers **virtuel** (rien n'existe sur disque,
le contenu est généré à la lecture) exposant l'état interne du noyau :

- `/proc/[pid]/status` : état résumé d'un processus (mémoire, UID/GID,
  état d'ordonnancement).
- `/proc/[pid]/fd/` : descripteurs de fichiers ouverts par ce processus —
  diagnostic classique d'une fuite de descripteurs.
- `/proc/[pid]/maps` : cartographie mémoire virtuelle (bibliothèques
  chargées, permissions par région).
- `/proc/meminfo`, `/proc/loadavg`, `/proc/cpuinfo` : état global du
  système, source de la plupart des outils de supervision (`top`, `free`,
  `uptime` lisent directement ces fichiers).
- `/proc/sys/` : point d'entrée en LECTURE-ÉCRITURE vers les paramètres
  noyau réglables à chaud (`sysctl`), ex. `/proc/sys/net/ipv4/ip_forward`
  pour activer le routage IP.

## /sys — le modèle de périphériques exposé

`/sys` (sysfs) expose la hiérarchie des périphériques et pilotes reconnus
par le noyau, y compris la hiérarchie cgroups déjà vue en section 1
(`/sys/fs/cgroup/`). Contrairement à `/proc` (historiquement plutôt dédié
aux processus), `/sys` suit une organisation stricte reflétant la
topologie matérielle réelle (bus, périphériques, classes).

## Outils de diagnostic de premier recours

- **`strace`** : trace chaque appel système émis par un processus — outil
  de référence pour comprendre *ce qu'un programme demande réellement au
  noyau* (fichiers ouverts, sockets créées, permissions refusées).
- **`ltrace`** : équivalent pour les appels de bibliothèque partagée plutôt
  que les appels système.
- **`lsof`** : liste les fichiers ouverts par processus — répond
  directement à « qui a ce fichier ouvert / qui écoute sur ce port ».
- **`perf`** : profileur basé sur les compteurs de performance matériels du
  CPU — identifie où le temps CPU est réellement dépensé, jusqu'au niveau
  fonction voire ligne de code avec les symboles de débogage disponibles.
- **`dmesg`** : tampon circulaire des messages du noyau — premier réflexe
  face à un comportement matériel anormal (disque, réseau, OOM killer).

## Le OOM killer

Quand la mémoire disponible (RAM + swap) est épuisée, le noyau invoque
l'*Out-Of-Memory killer*, qui choisit un processus à terminer de force
selon un score (`/proc/[pid]/oom_score`, influençable par
`oom_score_adj`) combinant consommation mémoire et priorité déclarée —
mécanisme de dernier recours pour éviter un blocage total du système,
visible dans `dmesg`/le journal noyau après coup (jamais silencieux).

*(Schéma disponible : `schema.svg`, dans ce dossier.)*
2.9 Ko BLAKE3 : 23139385…efe6902f