Lorsque j'exécute la commande suivante pour obtenir l'utilisation du processeur, j'obtiens une utilisation agréable du processeur + utilisateur.
top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'
Production:
14.5
Ici, je reçois un problème, c'est que la sortie dépend de la commande supérieure, elle ne change donc pas instantanément en tant que commande supérieure. Donc, je ne reçois pas instantanément le processeur correct. Il donne la même sortie et ne change pas.
Je veux obtenir une utilisation du processeur en temps réel en sortie. Veuillez m'aider à améliorer ma commande.
command-line
top
Ketan Patel
la source
la source
Réponses:
Si vous pouvez vous permettre un délai d'une seconde, cela imprimera l'utilisation du processeur sous forme de pourcentage simple:
(Sans le délai d'une seconde,
vmstat
ne peut imprimer que les valeurs moyennes depuis le démarrage.)la source
vmstat 1 2
comme ceci:echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')]
Sinon , votrevmstat
va donner des valeurs depuis le démarrage qui est probablement pas ce que vous êtes après.Ceci est un problème connu avec
top
. Comme expliqué ici , la 1ère itération detop -b
rendements les pourcentages depuis le démarrage, il faut donc au moins deux itérations (-n 2
) pour obtenir le pourcentage actuel. Pour accélérer les choses, vous pouvez régler led
elay entre les itérations à0.01
.top
divise l' utilisation du CPU entre l' utilisateur, les processus du système et desnice
processus, nous voulons que la somme des trois. Enfin, vousgrep
la ligne contenant les pourcentages CPU et ensuite utilisergawk
à l' utilisateur somme, système et agréable processus:la source
top
signalera le% d'utilisation en pourcentage d'un seul processeur. Cela signifie que vous obtiendrez souvent des pourcentages beaucoup plus élevés. Voir le point 9 ici .top
en mode interactif (juste exécutertop
) et, une fois là-bas, appuyez surI
(Maj + i) pour voir une répartition par cœurs.J'ai essayé plusieurs façons, mais cela me semble le plus précis:
Je l'ai d' ici
la source
%.1f
qui à mon avis est plus lisible par l'homme et utile si vous utilisez cette sortie dans d'autres scripts.Utilisez
-n2
. Cela produira deux lignes. La première fois,top
la ligne n'est pas qualifiée pour l'état à ce moment. Ajustez ensuite votre script pour ignorer la première ligne.la source