C'è qualche comando in Linux per capire, dato un processo, quale processore è in esecuzione il processo? Sono interessato a capire la CPU occupata e il tempo di inattività della CPU di quel processore.
È possibile utilizzare il comando ps
per interrogare e visualizzare il processore attivo. Ad esempio, potresti eseguire:
$ 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 colonna PSR
mostra che init
è in esecuzione sul processore 1 e ps
è in esecuzione sul processore 0. Vedere la manpage per ps (1) per maggiori dettagli su come per personalizzare i campi che vengono visualizzati.
È possibile configurare uno strumento grafico come htop
per visualizzare il processore attivo corrente. Inoltre, htop
ha un grafico di visualizzazione del carico per CPU, che potrebbe essere quello che stai cercando. Vedi, ad esempio, il seguente screenshot di http://htop.sourceforge.net/ .
Infine, puoi usare lo strumento taskset
per forzare l'affinità a una particolare CPU.
Ci sono molti modi per scoprirlo. htop, in alto, ps.
url: http://htop.sourceforge.net/
url: http://gitorious.org/procps
ecco un esempio con l'ultima colonna 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 è il CODICE per visualizzare l'id del processore. Puoi usare l'opzione di formattazione come ps -o pid,psr
o semplicemente fare 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]
Cito il contenuto di ps:
psr ti dirà il processore su cui il processo è in esecuzione o in esecuzione. pcpu ti dirà la percentuale di tempo CPU che il processo ha consumato.
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
Stile BSD:
ps axo stat, euid, ruid, tty, tpgid, sess, pgrp, ppid, pid, psr , pcpu , comm