它是关于linux的procps包,实用程序ps.
它可以打印每个进程(线程)的最后使用的CPU数量吗?
更新:不是CPU时间(10秒),而是CPU NUMBER(CPU0,CPU5,CPU123)
Mik*_*kel 19
ps(1)手册页说你可以使用以下psr字段:
Run Code Online (Sandbox Code Playgroud)psr PSR processor that process is currently assigned to.
$ ps -o pid,psr,comm
PID PSR COMMAND
7871 1 bash
9953 3 ps
Run Code Online (Sandbox Code Playgroud)
或者您可以使用该cpuid字段,它执行相同的操作.
$ ps -o pid,cpuid,comm
PID CPUID COMMAND
7871 1 bash
10746 3 ps
Run Code Online (Sandbox Code Playgroud)
两个名称的原因是为了与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
Run Code Online (Sandbox Code Playgroud)
有线程:
$ 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
Run Code Online (Sandbox Code Playgroud)
还有一个未记录的-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
Run Code Online (Sandbox Code Playgroud)
哪个是多个处理器?根据联机帮助页,它没有提供此选项。但在我的 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? */