Je suppose que la question est, pourrais-je en quelque sorte calculer le pourcentage d'utilisation du processeur simplement en lisant une fois / proc / stat?
# head -1 /proc/stat
cpu 67891300 39035 6949171 2849641614 118251644 365498 2341854 0
Je pense à résumer les colonnes à l'exception de l'IOWait (je lisais quelque part qu'il est compté dans le ralenti) et cela me donnerait le 100% et chaque colonne individuelle pourrait être transformée en pourcentage par (colonne / 100_percent) * 100.
- utilisateur: processus normaux s'exécutant en mode utilisateur
- nice: niced processus s'exécutant en mode utilisateur
- système: processus s'exécutant en mode noyau
- inactif: les pouces se tortillent
- iowait: attente de fin des E / S
- irq: maintenance des interruptions
- softirq: entretien des softirqs
- voler: attente involontaire
- invité: exécuter un invité normal
- guest_nice: exécuter un invité niced
Est-ce une approche viable ou je suis totalement hors piste?
Si vous voulez un liner, il peut ressembler à ceci:
Le résultat:
97.17000000000000000000
Comment ça fonctionne:
produit
( 1055057784 - 1055058055 )/100
ensuite ce saut de ligne vers bc. Aura quelque chose comme-7.84000000000000000000
, puis il suffit de l'envelopper100-$(value)
et de le nourrir à nouveau bcLà:
sleep #
- Délai de 1 seconde, si vous modifiez cette valeur, le résultat intermédiaire doit être divisé en nombre de secondes.$5
- 5ème champ, selonman proc
et http://www.linuxhowtos.org/System/procstat.htmVeuillez me faire savoir si cela ne fonctionne pas pour vous.
la source
Ou si vous êtes satisfait avec seulement deux chiffres après le point awk peut tout faire beaucoup plus simple et plus lisible:
la source