Performance

Mesurer, comprendre, optimiser.

Approche structuree : observer avant de changer, isoler les goulets d'etranglement, valider l'impact des optimisations.

Diagnostic

Commencer par la vue globale

Snapshot systeme

uptime
htop
vmstat 1 5
free -h
sar -n DEV 1 3

Identifier si le probleme est CPU, memoire, I/O ou reseau avant de plonger en profondeur.

Processus dominants

ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head
pidstat -r -u 1

Un seul processus bruyant peut expliquer des symptomes globaux.

CPU

Threads, load average, scheduling

Mesurer

mpstat -P ALL 1
pidstat -u -p 1234 1
perf top

Mesurer l'usage par CPU et les hotspots dans les processus.

Load average

uptime
cat /proc/loadavg
pidstat -w 1

Un load eleve ne veut pas dire CPU : il peut venir du I/O.

Affinite et priorites

taskset -pc 0-3 1234
renice -n -5 -p 1234
chrt -p 1234

Ajuster prudemment les priorites sur les services critiques.

Memoire

Pages, swap, caches

Observation

free -h
vmstat 1
cat /proc/meminfo

Distinguer cache, buffers et memoire reelle consommee.

Swap et pression

swapon --show
cat /proc/vmstat | grep -i swap
sysctl vm.swappiness

Une pression swap constante est un signe d'alerte en production.

I/O disque

Latence et debit

Observation

iostat -xz 1
iotop -oP
lsblk -d -o name,rota

Surveiller la latence est plus important que le debit brut.

Filesystem

mount | column -t
tune2fs -l /dev/sda1
xfs_info /dev/sdb1

Certaines options de montage peuvent apporter un gain notable.

Test rapide

dd if=/dev/zero of=/tmp/test bs=1M count=1024 conv=fdatasync
fio --name=rand --rw=randread --size=1G --iodepth=32

Tester sur un environnement controle, jamais sur un disque critique.

Tuning

Parametres et limites

Kernel sysctl

sysctl -a | grep -i swappiness
sysctl -w vm.swappiness=10
sudo nano /etc/sysctl.conf

Tester les changements en environnement controle et documenter.

Limites systemd

systemctl show nginx | grep Limit
sudo systemctl edit nginx
ulimit -n

Les limites de fichiers et de processus impactent directement les services reseau.

Reseau

Latence, congestion et buffers

Mesures rapides

ss -s
ip -s link
ping -c 5 1.1.1.1

Commencer par la qualite du lien et la perte de paquets.

Buffers TCP

sysctl net.core.rmem_max
sysctl net.core.wmem_max
sysctl net.ipv4.tcp_congestion_control

Ajuster les buffers uniquement apres mesure et validation.

Capture

tcpdump -i eth0 -w capture.pcap
ngrep -W byline port 443

La capture permet de voir les retransmissions et les erreurs TLS.

Profiling

Observer le comportement applicatif

strace et ltrace

sudo strace -fp 1234
sudo strace -f -e trace=network -p 1234
sudo ltrace -p 1234

strace montre les syscalls pour trouver les blocages et timeouts.

perf

sudo perf top
sudo perf record -p 1234 -g -- sleep 30
sudo perf report

perf identifie les hotspots CPU au niveau kernel et user-space.

Observabilite avancee

Logs, metrics, traces

Logs structures

journalctl -u nginx -o json-pretty | head
journalctl -o short-iso -S \"1 hour ago\"
logger -t app \"healthcheck ok\"

Des logs structures facilitent la recherche et l'indexation.

Metrics systeme

curl http://localhost:9100/metrics
ss -s
cat /proc/loadavg

Exposer des metrics facilite la capacite et les alertes proactives.

Traces et latence

Les traces distribuees aident a suivre une requete de bout en bout, surtout en microservices.

Definir des SLO clairs avant d'ajouter de la complexite.

Capacite

Anticiper la croissance

Metriques clefs

  • CPU idle et load moyen
  • Latence disque moyenne et p95
  • Utilisation memoire + swap
  • Traffic reseau par interface

Seuils

Definir des seuils d'alerte (warning/critical) avant d'avoir un incident permet d'agir plus tot.

Exemple: I/O wait > 20% pendant 5 minutes = alerte critique.

Planification

Ajouter de la capacite sur la base de tendances, pas sur un pic isole. Documenter chaque evolution.

eBPF

Tracing kernel sans redemarrage

bpftrace en pratique

sudo bpftrace -e 'tracepoint:syscalls:sys_enter_execve { @[comm] = count(); }'
sudo bpftrace -e 'kprobe:tcp_connect { @[comm] = count(); }'
sudo bpftrace -e 'tracepoint:sched:sched_switch { @[args->prev_comm] = count(); }'

Idem pour identifier les chemins chauds sans instrumenter le code.

Flamegraph rapide

sudo perf record -F 99 -a -g -- sleep 30
sudo perf script > out.perf
stackcollapse-perf.pl out.perf > out.folded
flamegraph.pl out.folded > flame.svg

Les flamegraphs rendent visibles les hotspots CPU.

Mise a jour quotidienne

Ajout du 2025-12-23

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2025-12-24

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2025-12-25

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2025-12-26

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2025-12-27

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2025-12-28

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2025-12-29

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2025-12-30

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2025-12-31

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-01

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-02

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-03

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-04

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-05

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-06

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-07

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-01-08

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-01-09

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-10

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-11

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-12

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-13

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-14

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-15

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-01-16

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-01-17

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-18

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-19

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-20

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-21

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-22

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-23

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-01-24

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-01-25

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-26

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-27

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-28

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-29

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-30

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-31

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-02-01

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-02-02

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-02-03

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-02-04

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-02-05

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-02-06

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-02-07

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-02-08

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-02-09

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-02-10

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-02-11

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data