5 commentaires
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.
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
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(); }'
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 !
J'ai un processus qui prend 100% CPU sur un serveur Linux de production. Le
topme 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 ?