Où la commande top obtient-elle toutes les données pour l'utilisation du processeur?


7

Lorsque je lance la topcommande, la troisième ligne est;

Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.2%id, 0.1%wa, 0.0%hi, 0.0%si, 0.1%st

D'où top command obtient-il ces données? Est-ce qu'il vient de /proc?, Si oui, quel est l'emplacement exact?


1
Oui, il utilise procfs.
Roman Newaza

Réponses:


4

Vous vous interrogez sur l'emplacement exact de l'utilisation du processeur. C'est /proc/stat:

$ head -n 3 /proc/stat
cpu  1751981 185577 398478 28868975 69445 32 27028 0 0 0
cpu0 954878 88888 186567 14433502 19750 0 600 0 0 0
cpu1 797103 96688 211911 14435473 49694 31 26428 0 0 0

Le format est expliqué dans la documentation du noyau ( filesystems/proc.txt); J'ai mis en gras les topabréviations:

La toute première ligne "cpu" regroupe les nombres de toutes les autres lignes "cpuN". Ces chiffres identifient le temps passé par la CPU à effectuer différents types de travail. Les unités de temps sont en USER_HZ (typiquement des centièmes de seconde). La signification des colonnes est la suivante, de gauche à droite:

  • us er: processus normaux s'exécutant en mode utilisateur
  • ni ce: processus en cours d'exécution s'exécutant en mode utilisateur
  • sy stem: processus s'exécutant en mode noyau
  • id le: les pouces tournoyants
  • io wa it: en attente de I / O à terminer
  • irq: le service des interruptions [dur interrompt hi ]
  • softirq: service softirqs [interruptions douces si ]
  • st eal: attente involontaire
  • guest: exécuter un invité normal
  • guest_nice: exécuter un invité soigné

Vous pouvez obtenir des informations générales sur votre CPU /proc/cpuinfo, mais cela n’est pas lié à son utilisation.


0

Procfs peuvent être trouvés dans /proc. Veuillez lire ceci: Exploration de procfs

Procfs est un système de fichiers virtuel sous Linux monté dans / proc, et sert à plusieurs fins, y compris l'accès aux informations du noyau en mode utilisateur ou pour le débogage. L'une des caractéristiques qui me rendent spécial pour Linux est l'accès aux informations de processus sous forme de flux de texte. Beaucoup de commandes linux (ps, top, pstree, etc.) s'appuient sur ce système de fichiers pour plus d'informations.

Vous pouvez chercher dans tople code source qui pourrait être trouvé dans le coreutilspaquet GNU.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.