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.
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/ .
Enfin, vous pouvez utiliser l'outil taskset
pour forcer l'affinité à un processeur particulier.
Il y a plusieurs façons de le savoir. htop, top, ps.
url: http://htop.sourceforge.net/
url: http://gitorious.org/procps
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
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]
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