RousselTMLEARNING

Article · Administration Linux : de la découverte à l'expertise

Processus, mémoire et performance

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 #

États d'un processus
Beaucoup de processus en D font monter la charge sans consommer de CPU.
ÉtatSignification
Ren cours d'exécution ou prêt
Sendormi, attend un événement (cas normal)
Dattente d'E/S non interruptible (disque, NFS) : ne se tue pas
Zzombie : terminé, pas encore récupéré par son parent
Tarrê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 python3
Bonne 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œurs

La 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 #

Répartition de la mémoire
Le cache est rendu immédiatement aux applications qui en ont besoin.
free -h

Regardez 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 VmRSS

vmstat et iostat #

Sortie de vmstat
Swap, attente disque et processus bloqués : le serveur manque de mémoire.
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 -n

Limiter 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 service

4. Une méthode #

Ne pas chercher au hasard.

USE #

Méthode USE
Passer chaque ressource en revue évite d'oublier le disque ou le réseau.
  1. uptime : la charge monte-t-elle ?
  2. dmesg -T | tail : erreurs noyau, OOM, disque ?
  3. vmstat 1 : file d'exécution, swap, attente E/S
  4. mpstat -P ALL 1 : un cœur saturé ?
  5. iostat -xz 1 : disque saturé ?
  6. free -h : mémoire disponible
  7. ss -s, ip -s link : connexions, erreurs réseau
  8. top / 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.

📄 Processus, mémoire et performance : surveiller et dépanner un serveur Linux →

Mon suivi

  • ⏱ Durée estimée : ≈ 9 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

✉️ Poser une question

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.