Existe-t-il une commande sous Linux pour connaître le numéro de processeur dans lequel un processus est chargé?

26

Existe-t-il une commande sous Linux pour déterminer, compte tenu d'un processus, quel processeur le processus exécute? Je suis intéressé à déterminer le temps occupé et le temps d'inactivité du processeur de ce processeur.

kumar
la source

Réponses:

32

Vous pouvez utiliser la pscommande pour interroger et afficher le processeur actif. Par exemple, vous pouvez exécuter:

$ ps -aF
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0  5971  1764   1 Sep15 ?        00:00:01 /sbin/init
ubuntu   28903  2975  0  3826  1208   0 09:36 pts/0    00:00:00 ps -aF

La PSRcolonne indique que inits'exécute sur le processeur 1 et pss'exécute sur le processeur 0. Consultez la page de manuel de ps (1) pour plus de détails sur la personnalisation des champs affichés.

Vous pouvez configurer un outil graphique comme htoppour afficher le processeur actif actuel. Dispose également d' htopun graphique d'affichage de la charge par processeur, qui peut être ce que vous recherchez. Voir, par exemple, la capture d'écran suivante de http://htop.sourceforge.net/ .

capture d'écran htop

Enfin, vous pouvez utiliser l' tasksetoutil pour forcer l'affinité avec un processeur particulier.

Emil Sit
la source
Gardez à l'esprit que (à moins que vous n'ayez utilisé l'ensemble de tâches pour définir l'affinité pour un seul processeur), ces informations peuvent être obsolètes avant que l'affichage ne soit généré, et encore moins au moment où vous les lisez.
Jamie Hanrahan
26

Il existe de nombreuses façons de le savoir. htop, haut, ps.

htop

  • version testée: 1.0.2
  • url: http://htop.sourceforge.net/

    1. Appuyez sur F2 pour accéder à la fenêtre de configuration
    2. sélectionnez Colonnes dans la colonne Configuration
    3. aller Colonnes disponibles
    4. ajouter PROCESSEUR processeur de sélection htop
    5. Vérifiez la colonne CPU htop avec colonne cpu

Haut

  • version testée: procps 3.3.8
  • url: http://gitorious.org/procps

    1. Appuyez sur f pour accéder à la fenêtre de gestion des champs
    2. Sélectionnez P (dernier processeur utilisé)

voici un exemple avec la dernière colonne P

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   P 
 5626 yashi     20   0 1926276 545964  47596 R  12.6  3.4 151:10.81 gnome-sh+ 2 
 5347 root      20   0  384788  73600  55708 S   8.7  0.5  55:10.09 Xorg      1 
 8125 yashi     20   0  646240  30776  21928 S   4.3  0.2  23:06.20 gnome-sy+ 0 
 1785 yashi     20   0  581180  29288  15560 R   4.0  0.2   0:25.55 gnome-te+ 1

ps

PSR est le CODE pour afficher l'ID du processeur. Vous pouvez utiliser l'option de formatage comme ps -o pid,psrou simplement faireps -eF

$ ps -eF|head
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0  3817   964   0 Aug14 ?        00:00:02 init [2]  
root         2     0  0     0     0   2 Aug14 ?        00:00:00 [kthreadd]
root         3     2  0     0     0   0 Aug14 ?        00:00:11 [ksoftirqd/0]
root         5     2  0     0     0   0 Aug14 ?        00:00:00 [kworker/0:0H]
root         7     2  0     0     0   0 Aug14 ?        00:00:00 [migration/0]
root         8     2  0     0     0   0 Aug14 ?        00:00:00 [rcu_bh]
root         9     2  0     0     0   3 Aug14 ?        00:00:39 [rcu_sched]
root        10     2  0     0     0   0 Aug14 ?        00:00:00 [watchdog/0]
root        11     2  0     0     0   1 Aug14 ?        00:00:00 [watchdog/1]
Yasushi Shoji
la source
1

Je jsut citer le contenu de man ps:

psr vous indiquera le processeur sur lequel le processus est exécuté ou exécuté. pcpu vous indiquera le pourcentage de temps cpu consommé par le processus.

ps -eo pid, tid, class, rtprio, ni, pri, psr , pcpu , stat, wchan: 14, comm

ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm | tail
 9847  9847 TS       -   0  19   2  0.0 S    -              kworker/2:0
10061 10061 TS       -   0  19   2  0.6 Sl   futex_wait_que chrome
10208 10208 TS       -   0  19   3  0.0 S    -              kworker/3:3
10247 10247 TS       -   0  19   1  0.0 S    -              kworker/1:1
10381 10381 TS       -   0  19   1  4.6 Sl   futex_wait_que chrome
10452 10452 TS       -   0  19   0  0.0 S    -              kworker/0:1
10491 10491 TS       -   0  19   0  0.5 Sl   futex_wait_que chrome
10504 10504 TS       -   0  19   2  0.0 S    -              kworker/2:1
10505 10505 TS       -   0  19   0  0.0 R+   -              ps
10506 10506 TS       -   0  19   3  0.0 S+   pipe_wait      tail

Style BSD:

ps axo stat, euid, ruid, tty, tpgid, sess, pgrp, ppid, pid, psr , pcpu , comm

firo
la source
C'est un peu cryptique. Pouvez-vous développer votre réponse pour expliquer ce que c'est et comment l'utiliser pour résoudre le problème? de l'avis
fixer1234