Nous savons que top
c'est une commande pour obtenir l'utilisation du processeur sous Linux et d'autres manières
cat /proc/stat
qui sont utilisées par top.
Quelles sont les autres méthodes pour obtenir l'utilisation du processeur dans la ligne de commande Linux?
Scénario d'utilisation: la sortie de cette commande sera utilisée par un script pour consigner l'utilisation du processeur en continu. top
et /proc/stat
donner une utilisation détaillée qui est difficile à enregistrer. Existe-t-il un moyen plus simple d'obtenir les informations sur le processeur?
linux
command-line
fasil
la source
la source
sed
le résultat si vous ne voulez que la valeur.top
et l'autre donne une commande très utile. Ce n'est pas un X que j'utilise, et toi? question, mais comment dois - je faire X question. Voter pour rouvrir.Réponses:
Comme d'autres l'ont dit, le meilleur moyen est probablement
top
. Il a besoin d'un petit ajustement et d'un peu d'analyse, mais vous pouvez l'obtenir pour vous donner l'utilisation actuelle du processeur en pourcentage.top
divise l'utilisation du processeur entre l'utilisateur, les processus système et lesnice
processus, nous voulons la somme des trois. Ainsi, nous pouvons exécutertop
enb
mode atch qui nous permet d'analyser sa sortie. Cependant, comme expliqué ici , la 1ère itération detop -b
retourne les pourcentages depuis le démarrage, nous avons donc besoin d'au moins deux itérations (-n 2
) pour obtenir le pourcentage actuel. Pour accélérer les choses, vous pouvez définir led
délai entre les itérations sur0.01
. Enfin, vous avezgrep
la ligne contenant les pourcentages CPU puis utilisezgawk
pour additionner les processus utilisateur, système et sympa:Je pensais que vous pouviez également obtenir ces informations
ps -o pcpu ax
en ajoutant le% d'utilisation de chaque processus en cours d'exécution. Malheureusement, comme expliqué ici ,ps
"renvoie le pourcentage de temps passé à s'exécuter pendant toute la durée de vie d'un processus", ce qui n'est pas ce dont vous avez besoin.ÉDITER
Sur la base de votre commentaire, votre version de
top
est différente de la mienne et vous devriez l'utiliser à la place:Et, pour éviter les problèmes de localisation, définissez les paramètres régionaux sur C:
la source
sar
est la façon définitive de le faire. Ainsi, par exemple,sar -u
produira quelque chose comme ceci:Vous ne dites pas quel Linux vous utilisez mais pour CentOS / RedHat vous devez installer le
sysstat
paquet, et je pense que c'est la même chose sur Debian / Ubuntu.Vous pouvez également utiliser sar pour collecter des statistiques ad hoc :
Recueillira des statistiques toutes les 60 secondes 600 fois, donc 600 minutes.
la source