首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ps实用程序在linux (procps)中,如何检查使用了哪个CPU

ps实用程序在linux (procps)中,如何检查使用了哪个CPU
EN

Stack Overflow用户
提问于 2011-04-20 22:42:53
回答 4查看 35.6K关注 0票数 8

它是关于procps包的,实用程序ps for linux。

它能打印出每个进程(线程)上一次使用的CPU数量吗?

更新:不是CPU时间(10秒),而是CPU编号(CPU0、CPU5、CPU123)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-20 22:49:57

多个处理器中的哪一个?根据手册页,它没有提供这方面的选项。但在我的Debian稳定系统上,它接受未记录的-o cpu

在查看了ps L的源代码和输出之后,我相信您的答案要么是cpuid,要么是sgi_p输出选项,分别是列is和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? */

票数 4
EN

Stack Overflow用户

发布于 2011-04-21 05:31:42

ps(1)手册页显示您可以使用psr字段:

psr PSR processor that process is currently assigned to.

代码语言:javascript
复制
$ ps -o pid,psr,comm
  PID PSR COMMAND
 7871   1 bash
 9953   3 ps

或者,您可以使用cpuid字段,它做同样的事情。

代码语言:javascript
复制
$ ps -o pid,cpuid,comm
  PID CPUID COMMAND
 7871     1 bash
10746     3 ps

使用两个名称的原因是为了与Solaris (psr)和NetBSD/OpenBSD (cpuid)兼容。

要获得线程,请添加-L选项(如果使用的是-o,则添加lwp字段)。

不使用线程:

代码语言:javascript
复制
$ 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

使用线程:

代码语言:javascript
复制
$ 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添加到普通字段中:

代码语言:javascript
复制
$ 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
票数 24
EN

Stack Overflow用户

发布于 2011-04-21 05:40:13

同样被低估的还有:

代码语言:javascript
复制
mpstat -I ALL 1 | less -SR
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5732192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档