comment trouver la cause de cpu usage élevé sur un processus linux

Posté par gabriel-renaud le 28/12/2025
RÉSOLU

gabriel-renaud

Membre depuis le 19/07/2024

actif secouriste

J'ai un processus qui prend 100% CPU sur un serveur Linux de production. Le `top` me dit juste son PID et qu'il bouffe le CPU. Comment je peux creuser pour savoir exactement ce qui se passe dedans sans tout faire planter ?

Commentaires

julien-marcelle

Membre depuis le 20/01/2020

actif

Utilise `perf top`. C'est un outil noyau très puissant qui va te montrer en temps réel quelles fonctions consomment le plus de cycles CPU dans ce PID.

sudo perf top -p VOTRE_PID

Tu verras les symboles des fonctions qui tournent à fond.

monique-foucher

Membre depuis le 25/08/2024

Si c'est un problème de `syscalls` à répétition, `strace` peut t'aider à voir les appels système que le processus fait. Par contre, `strace` peut ralentir l'application si elle fait beaucoup d'appels.

sudo strace -p VOTRE_PID

devaux-benoit

Membre depuis le 28/07/2024

Pour des choses plus fines, regarde du côté de `bpftrace` ou `bcc-tools`. Tu peux instrumenter des points spécifiques du kernel et de l'user space pour voir exactement ce qui consomme. C'est plus complexe mais super précis.

bpftrace -e 'profile:hz:99 { @[kstack] = count(); }'

marc01

Membre depuis le 19/10/2024

actif secouriste

Un `pidstat -t -u 1 10 -p VOTRE_PID` peut te donner des stats CPU et thread par thread pour voir si c'est un seul thread ou plusieurs qui sont chauds.

gabriel-renaud

Membre depuis le 19/07/2024

actif secouriste

Super le `perf top` m'a tout de suite montré une boucle infinie dans une fonction spécifique que je n'avais pas vue. Merci pour les outils je vais les garder sous le coude !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire