大约是procps
包,实用程序ps
用于linux。
是否可以打印每个进程(线程)上次使用的CPU的数量?
更新:不是CPU时间(10秒),而是CPU NUMBER(CPU0,CPU5,CPU123)
答案 0 :(得分:19)
ps(1)手册页说您可以使用psr
字段:
psr PSR processor that process is currently assigned to.
$ ps -o pid,psr,comm
PID PSR COMMAND
7871 1 bash
9953 3 ps
或者您可以使用cpuid
字段,它可以执行相同的操作。
$ ps -o pid,cpuid,comm
PID CPUID COMMAND
7871 1 bash
10746 3 ps
两个名称的原因是为了与Solaris(psr
)和NetBSD/OpenBSD(cpuid
)兼容。
要获得线程,请添加-L
选项(如果您使用lwp
,则添加-o
字段。)
没有主题:
$ ps -U $USER -o pid,psr,comm | egrep 'chromi|PID' | head -4
PID PSR COMMAND
6457 3 chromium-browse
6459 0 chromium-browse
6461 2 chromium-browse
使用主题:
$ ps -U $USER -L -o pid,lwp,psr,comm | egrep 'chromi|PID' | head -4
PID LWP PSR COMMAND
6457 6457 3 chromium-browse
6457 6464 1 chromium-browse
6457 6465 2 chromium-browse
还有一个未记录的-P
选项,可将psr
添加到普通字段中:
$ ps -U $USER -LP | egrep 'chromi|PID' | head -4
PID LWP PSR TTY TIME CMD
6457 6457 3 ? 00:01:19 chromium-browse
6457 6464 1 ? 00:00:00 chromium-browse
6457 6465 2 ? 00:00:00 chromium-browse
答案 1 :(得分:3)
多个处理器中的哪一个?根据联机帮助页,它没有为此提供选项。但是在我的Debian稳定系统上,它接受了未记录的-o cpu
ps L
的输出后,我相信您的答案分别是cpuid
或sgi_p
输出选项,列ID CPUID和P.
{"cpu", "CPU", pr_nop, sr_nop, 3, 0, BSD, AN|RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */
答案 2 :(得分:3)
也被低估了:
mpstat -I ALL 1 | less -SR
答案 3 :(得分:1)
我是在Arch上这样做的,它可能会帮助某个人:
ps -C "process" -L -o pid,lwp,pcpu,cpuid,time