web-dev-qa-db-fra.com

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

Existe-t-il une commande sous Linux pour déterminer, en fonction d'un processus, quel processeur le processus est en cours d'exécution? Je suis intéressé à déterminer le temps d'occupation et le temps d'inactivité du processeur de ce processeur.

24
kumar

Vous pouvez utiliser la commande ps 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 colonne PSR indique que init est exécuté sur le processeur 1 et ps sur le processeur 0. Voir la page de manuel pour ps (1) pour plus de détails. pour personnaliser les champs affichés.

Vous pouvez configurer un outil graphique tel que htop pour afficher le processeur actif actuel. De plus, htop a un graphique d'affichage de la charge par CPU, ce qui peut être ce que vous recherchez. Voir, par exemple, la capture d'écran suivante tirée de http://htop.sourceforge.net/ .

htop screenshot

Enfin, vous pouvez utiliser l'outil taskset pour forcer l'affinité à un processeur particulier.

31
Emil Sit

Il y a plusieurs façons de le savoir. htop, top, ps.

htop

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

    1. Appuyez sur F2 pour entrer dans la fenêtre d'installation
    2. sélectionnez les colonnes dans la colonne Configuration
    3. go Colonnes disponibles
    4. ajouter PROCESSEUR htop selecting processor
    5. Vérifiez la colonne CPU htop with cpu column

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,psr ou simplement faire ps -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]
24
Yasushi Shoji

Je viens de citer le contenu de man ps:

psr vous indiquera le processeur sur lequel le processus est en cours d'exécution. pcpu vous indiquera le pourcentage de temps CPU pris par le processus.

ps -eo pid, tid, classe, 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

1
firo