web-dev-qa-db-fra.com

Comment trouver ce que les processus fonctionnaient à la fois dans le passé?

On me demande d'enquêter sur une alerte d'utilisation élevée de la CPU qui s'est produite ce matin. J'ai utilisé sar -p et vu l'utilisation élevée du processeur montrant à cette époque

Ensuite, j'ai utilisé ps -eo pcpu,pid,user,args | sort -r -k1 | less Pour répertorier les 10 meilleurs porcs de mémoire à cette heure

Maintenant, comment puis-je savoir quels processus ont causé le goulot d'étranglement à cette heure spécifique du matin. Je suis un Java Developer et non un expert Linux.

Est-ce même possible?

4
juniorbansal

Il y a plusieurs options:

  1. utilisez un script qui écrit régulièrement des données sur une base de logfile. Vous pouvez utiliser Cron pour écrire la sortie de PS (et d'autres commandes) toutes les minutes sur un journal.
  2. Mieux vaut utiliser un programme spécialisé qui le fait pour vous. Atop est très bon à cela, il s'occupe de la rétention de logfile.

aTOP est disponible via le repo Epel pour Centos/Rhel/Fedora et via les repos par défaut de Debian/Ubuntu.

Vous pouvez utiliser au sommet comme une utilitaire top normale en temps réel, avec un comportement légèrement différent (consultez le manuel pour les frappes de frappe).

La partie la plus intéressante est la suivante: une fois installé un démon démarre les données de journalisation dans/var/log/Atop et vous pouvez lire ces fichiers avec ATOP:

atop -r /var/log/atop/atop_20160128

Vous avez ensuite accès à toutes les fonctions "TOP" telles que les fonctions (tri/à la recherche/utilisation de la mémoire/CPU/IO, etc.) et vous pouvez sauter 10 minutes en avant à temps via 'T' et 10 minutes de retour avec 't' ou sauter à une heure spécifique via 'B'.

Découvrez le manuel ATOP et Google a beaucoup de howtos à ce sujet.

Il peut y avoir d'autres solutions, mais ATOP est facile à comprendre et à utiliser et à bien commencer avant de faire quelques configurations sur mesure.

7
Thomas