Aller au contenu principal

Chapitre 4.5 - Processus et Ressources

Objectifs d'Apprentissage​

À la fin de ce chapitre, vous serez capable de:

  • Comprendre l'utilisation CPU par les processus
  • Comprendre l'utilisation mémoire
  • Monitorer les ressources avec différents outils
  • Identifier les processus gourmands
  • Limiter les ressources

Utilisation CPU​

Mesure CPU​

# Avec ps
ps aux --sort=-%cpu | head

# Avec top
top
# Colonne %CPU

# Avec htop
htop
# Barres CPU par processus

Temps CPU​

# Temps CPU total utilisé
ps -eo pid,time,comm

# Format: HH:MM:SS
# Exemple: 01:23:45 = 1h 23min 45s

Charge CPU (Load Average)​

# Voir la charge
uptime
# Exemple: load average: 1.25, 0.85, 0.65
# 1 min, 5 min, 15 min

# Interprétation:
# < nombre de CPUs: OK
# = nombre de CPUs: Utilisation complète
# > nombre de CPUs: Surcharge

# Nombre de CPUs
nproc
lscpu | grep "^CPU(s)"

Utilisation Mémoire​

Mémoire par Processus​

# Avec ps
ps aux --sort=-%mem | head

# Format lisible
ps aux --sort=-%mem -o pid,%mem,rss,comm | head

# Avec top
top
# Colonne %MEM, RES (RSS)

# RSS = Resident Set Size (mémoire physique)

Types de Mémoire​

# Voir détails
cat /proc/PID/status | grep -i mem

# VSZ: Virtual Size (mémoire virtuelle)
# RSS: Resident Set Size (mémoire physique)
# Shared: Mémoire partagée

Mémoire Totale​

# Vue d'ensemble
free -h

# Détails
cat /proc/meminfo

# Par processus
ps aux --sort=-%mem | head -10

Outils de Monitoring​

vmstat - Statistiques Système​

# Statistiques toutes les secondes
vmstat 1

# Colonnes importantes:
# r: Processus en attente
# b: Processus bloqués
# swpd: Swap utilisé
# free: Mémoire libre
# si/so: Swap in/out
# us/sy/id: CPU user/system/idle

iostat - I/O Statistiques​

# Installer si nécessaire
sudo apt install sysstat # Ubuntu/Debian

# Statistiques I/O
iostat -x 1

# Colonnes:
# %util: Utilisation disque
# r/s, w/s: Lectures/écritures par seconde

sar - System Activity Reporter​

# Historique CPU
sar -u

# Historique mémoire
sar -r

# Historique I/O
sar -b

# En temps réel
sar -u 1 10 # CPU, 1 seconde, 10 fois

Identifier les Processus Gourmands​

Top 10 CPU​

ps aux --sort=-%cpu | head -11 | tail -10

Top 10 Mémoire​

ps aux --sort=-%mem | head -11 | tail -10

Processus par Utilisateur​

# CPU par utilisateur
ps aux | awk '{cpu[$1]+=$3} END {for (user in cpu) print user, cpu[user]"%"}'

# Mémoire par utilisateur
ps aux | awk '{mem[$1]+=$4} END {for (user in mem) print user, mem[user]"%"}'

Limiter les Ressources​

ulimit - Limites par Processus​

# Voir les limites
ulimit -a

# Limiter mémoire virtuelle
ulimit -v 1000000 # 1GB en KB

# Limiter processus
ulimit -u 100

# Limiter fichiers ouverts
ulimit -n 1024

# Permanent: /etc/security/limits.conf

cgroups - Contrôle Avancé​

# Voir les cgroups
systemd-cgtop

# Limiter CPU
systemd-run --slice=my-slice --property=CPUQuota=50% commande

# Limiter mémoire
systemd-run --slice=my-slice --property=MemoryLimit=1G commande

Résumé​

Dans ce chapitre, vous avez appris:

CPU: %CPU, temps CPU, load average
Mémoire: %MEM, RSS, VSZ, types de mémoire
Monitoring: vmstat, iostat, sar pour statistiques
Identification: ps avec tri pour processus gourmands
Limites: ulimit, cgroups pour contrôler ressources


Prochaines Étapes​

Chapitre 4.6: Jobs et Tâches en Arrière-Plan
Module 5: Utilisateurs et Permissions


Chapitre créé le: Décembre 2024