Linux中的ps实用程序(procps),如何检查使用哪个CPU

这是关于procps软件包,用于linux的实用程序ps

它可以打印每个进程(线程)最后使用的CPU的数量?

更新:不是CPU时间(10秒),而是CPU数量(CPU0,CPU5,CPU123)

Solutions Collecting From Web of "Linux中的ps实用程序(procps),如何检查使用哪个CPU"

哪个多处理器? 它不提供根据手册页的选项。 但在我的Debian稳定的系统上,它接受无证的-o cpu


在查看源代码和ps L的输出之后,我相信你的答案是cpuidsgi_p输出选项,列ID分别是CPUID和P。


而'cpu' 应该按照output.c中的这个注释工作,但是它现在绑定到'nop'输出pr_nop():

{"cpu", "CPU", pr_nop, sr_nop, 3, 0, BSD, AN|RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */

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选项(如果使用-o则使用lwp字段)。

没有线程:

 $ 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 

也被低估了:

 mpstat -I ALL 1 | less -SR