web-dev-qa-db-fra.com

Comment connecter l'utilisation de la CPU par processus?

J'ai une boîte sur Linode qui traverse un comportement étrange. De temps en temps, la CPU et l'E/S du disque Tiront à 100% et le serveur devient insensible et doit être démarré. J'aimerais savoir mieux ce qui se passe, mais je ne sais pas comment trouver qui est responsable de tout ce que la CPU et les E/S. Je cours gentoo 2.6.18.

18
Helder S Ribeiro

Vous pourriez essayer de faire quelque chose comme ça:

while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; printf "\n" >> logfile.txt; sleep 3; done

cela vous montrerait les dix premiers processus en termes d'utilisation du processeur. Vous pouvez modifier le nombre de processus montrés en modifiant le 10 dans "Head -10" en un numéro différent, et la fréquence de mise à jour en modifiant le 3 dans "Sleep 3" ou en supprimant entièrement la partie "SLEEP 3".

20
shawn

Check Out Atop Il va écrire un journal binaire de tout ce que vous voulez éventuellement vouloir, puis vous pouvez utiliser une interface graphique similaire pour traverser les tranches de temps de la journée (par défaut de prendre les données toutes les 5 minutes). http://www.atcomputer.nl/tools/aop/

12
ScottZ

Je pense que Munin est l'un des outils de surveillance des produits qui vous aideront à obtenir des informations sur les activités de votre boîte. En outre, il existe un outil de ligne de commande comme SAR , iostat, PS, haut pour une telle utilisation.

6
Ali Mezgani

Les autres réponses vous ont seulement montré comment vous pouvez regarder ce qui se passe actuellement, ce qui ne vous aide pas si le système a été redémarré.

Si vous souhaitez que ces informations enregistrées pour la postérité (ou la facturation, ou quelle que soit autre utilisation, vous pourriez également avoir), ce que vous voulez est la comptabilité de processus.

Voici un howto que j'ai trouvé, mais je serai honnête - cela fait une décennie depuis que j'ai utilisé la comptabilité des processus.

http://tldp.org/howto/process-accompagnant/

5
Rob F

Une approche plus conviviale de la solution de Shawn pour une surveillance actuelle en temps réel:

while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done

Cela fournira une vue statique des 20 premiers processus qui seront actualisés toutes les 1 seconde. L'option "C" dans la commande PS imprimera le nom exécutable de processus plutôt que la commande ARGS. Vous pouvez omettre cette option si vous avez besoin de l'ensemble des informations de commande. % de colonne d'utilisation de la mémoire a également ajouté.

2
manolis

Gentoo n'a pas la commande "top" comme wel?

machine:~/# top

devrait vous donner les statistiques courantes de quels programmes provoque la plus grande charge.

1
Emthigious