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.
Performance
Approche structuree : observer avant de changer, isoler les goulets d'etranglement, valider l'impact des optimisations.
Diagnostic
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.
ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head
pidstat -r -u 1
Un seul processus bruyant peut expliquer des symptomes globaux.
CPU
mpstat -P ALL 1
pidstat -u -p 1234 1
perf top
Mesurer l'usage par CPU et les hotspots dans les processus.
uptime
cat /proc/loadavg
pidstat -w 1
Un load eleve ne veut pas dire CPU : il peut venir du I/O.
taskset -pc 0-3 1234
renice -n -5 -p 1234
chrt -p 1234
Ajuster prudemment les priorites sur les services critiques.
Memoire
free -h
vmstat 1
cat /proc/meminfo
Distinguer cache, buffers et memoire reelle consommee.
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
iostat -xz 1
iotop -oP
lsblk -d -o name,rota
Surveiller la latence est plus important que le debit brut.
mount | column -t
tune2fs -l /dev/sda1
xfs_info /dev/sdb1
Certaines options de montage peuvent apporter un gain notable.
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
sysctl -a | grep -i swappiness
sysctl -w vm.swappiness=10
sudo nano /etc/sysctl.conf
Tester les changements en environnement controle et documenter.
systemctl show nginx | grep Limit
sudo systemctl edit nginx
ulimit -n
Les limites de fichiers et de processus impactent directement les services reseau.
Reseau
ss -s
ip -s link
ping -c 5 1.1.1.1
Commencer par la qualite du lien et la perte de paquets.
sysctl net.core.rmem_max
sysctl net.core.wmem_max
sysctl net.ipv4.tcp_congestion_control
Ajuster les buffers uniquement apres mesure et validation.
tcpdump -i eth0 -w capture.pcap
ngrep -W byline port 443
La capture permet de voir les retransmissions et les erreurs TLS.
Profiling
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.
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
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.
curl http://localhost:9100/metrics
ss -s
cat /proc/loadavg
Exposer des metrics facilite la capacite et les alertes proactives.
Les traces distribuees aident a suivre une requete de bout en bout, surtout en microservices.
Capacite
Definir des seuils d'alerte (warning/critical) avant d'avoir un incident permet d'agir plus tot.
Ajouter de la capacite sur la base de tendances, pas sur un pic isole. Documenter chaque evolution.
eBPF
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.
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
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data