1. Les processus #
Ce qui tourne et comment le piloter.
Lister #
ps aux --sort=-%cpu | head # plus gros consommateurs CPU
ps aux --sort=-%mem | head
ps -ef --forest # arbre parent/enfant
pgrep -a nginx ; pidof sshd
top # P : tri CPU, M : tri mémoire, 1 : par cœur, k : tuer
htop # version interactive et coloréeÉtats #
| État | Signification |
|---|---|
| R | en cours d'exécution ou prêt |
| S | endormi, attend un événement (cas normal) |
| D | attente d'E/S non interruptible (disque, NFS) : ne se tue pas |
| Z | zombie : terminé, pas encore récupéré par son parent |
| T | arrêté (Ctrl+Z) |
Signaux #
kill -15 1234 # SIGTERM : demande d'arrêt propre (défaut)
kill -9 1234 # SIGKILL : arrêt immédiat, sans nettoyage
kill -HUP 1234 # SIGHUP : souvent « relire la configuration »
pkill -u bob # tous les processus de bob
killall -s TERM python3Bonne Pratique : Envoyez toujours SIGTERM d'abord et laissez quelques secondes : SIGKILL empêche l'application de fermer ses fichiers et connexions proprement.
Priorités et arrière-plan #
nice -n 10 tar -czf backup.tgz /srv # lancer avec une priorité basse
renice +5 -p 1234
ionice -c3 rsync -a /src /dst # E/S seulement quand le disque est libre
commande & ; jobs ; fg %1 ; bg %1 # tâches du shell
nohup ./long.sh > long.log 2>&1 & # survivre à la déconnexion
tmux new -s maintenance # session détachable (Ctrl+B D, puis tmux attach)2. CPU, mémoire et disques #
Lire les bons indicateurs.
Charge #
uptime # load average 1, 5 et 15 min
nproc # nombre de cœursLa charge compte les processus en exécution ou en attente (y compris en état D). Elle s'interprète par rapport au nombre de cœurs : 4 sur 4 cœurs = plein ; 12 sur 4 cœurs = saturation. Une charge élevée avec un CPU peu utilisé indique souvent des attentes disque.
Mémoire #
free -hRegardez la colonne available, pas free : Linux utilise la mémoire libre comme cache disque (buff/cache), récupérable immédiatement. Un serveur avec peu de « free » mais beaucoup d'« available » va bien.
Quand la mémoire manque vraiment, le noyau active l'OOM killer qui tue le processus le plus gourmand :
journalctl -k | grep -i 'out of memory'
dmesg -T | grep -i oom
cat /proc/1234/status | grep VmRSSvmstat et iostat #
vmstat 1 # r, b, si/so, wa
iostat -xz 1 # %util et await par disque (paquet sysstat)
mpstat -P ALL 1 # CPU par cœur
pidstat 1 # consommation par processus
sar -u -f /var/log/sysstat/sa26 # historique (sysstat)3. Diagnostiquer un processus #
Voir ce qu'il fait vraiment.
lsof, strace et /proc #
sudo lsof -p 1234 # fichiers et sockets ouverts
sudo lsof -i :8080 # qui utilise ce port ?
sudo lsof /var/log/app.log
sudo strace -p 1234 -f -e trace=network,file # appels système en direct
sudo strace -c -p 1234 # statistiques des appels (Ctrl+C)
cat /proc/1234/cmdline | tr '\0' ' '
ls -l /proc/1234/cwd /proc/1234/exe
cat /proc/1234/limits # limites (fichiers ouverts...)
ulimit -nLimiter les ressources #
systemd place chaque service dans un cgroup : on peut le limiter sans toucher à l'application.
sudo systemctl set-property app.service MemoryMax=1G CPUQuota=150%
systemd-cgtop # consommation par service4. Une méthode #
Ne pas chercher au hasard.
USE #
uptime: la charge monte-t-elle ?dmesg -T | tail: erreurs noyau, OOM, disque ?vmstat 1: file d'exécution, swap, attente E/Smpstat -P ALL 1: un cœur saturé ?iostat -xz 1: disque saturé ?free -h: mémoire disponibless -s,ip -s link: connexions, erreurs réseautop/pidstat: quel processus ?
À savoir : Cette liste des « 60 premières secondes » vient de l'équipe performance de Netflix : elle suffit à orienter la plupart des diagnostics.
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Bonnes Pratiques Kubernetes
Meilleures pratiques pour sécuriser et optimiser les déploiements Kubernetes.
Comparaison Offres Kubernetes
Analyse complète des offres managées de Kubernetes avec points forts, fonctionnalités, tarificati...
Stratégies de placement Kubernetes
Présentation des stratégies de placement dans Kubernetes pour optimiser la gestion des charges de...
CNI Kubernetes : Flannel, Calico et Cilium comparés
Kubernetes CNI : comprendre les plugins réseau (Container Network Interface) et comparer Flannel,...
Gestionnaires de packages
Les différents gestionnaires de packages pour Kubernetes et leurs avantages.
Jobs vs Serverless
Comparaison entre les Jobs Kubernetes et le modèle Serverless pour le calcul de tâches en arrière...
PersistentVolume, PersistentVolumeClaim et StorageClass dans Kubernetes
PersistentVolume (PV), PersistentVolumeClaim (PVC) et StorageClass dans Kubernetes : différences,...
Resource Quota Kubernetes
Guide complet sur les quotas de ressources Kubernetes pour la gestion des namespaces.
ConfigMaps et Secrets
Guide complet sur les ConfigMaps et Secrets dans Kubernetes.