Linux中是否有命令可以知道加载进程的处理器编号?

kum*_*mar 30 linux cpu cpu-usage process

给定一个进程,Linux 中是否有任何命令可以确定该进程正在运行哪个处理器?我有兴趣弄清楚该处理器的 CPU 忙和 CPU 空闲时间。

Emi*_*Sit 33

您可以使用该ps命令查询和显示活动处理器。例如,您可以运行:

$ 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
Run Code Online (Sandbox Code Playgroud)

PSR列显示init在处理器 1ps上运行和在处理器 0 上运行。有关如何自定义显示的字段的更多详细信息,请参阅ps(1)联机帮助页

您可以配置图形工具htop来显示当前活动的处理器。此外,htop还有一个每 CPU 负载显示图,这可能是您正在寻找的。例如,请参阅以下屏幕截图http://htop.sourceforge.net/ 中

htop 截图

最后,您可以使用该taskset工具强制关联特定 CPU。


Yas*_*oji 29

有很多方法可以找到。htop,顶,ps。

  • 测试版本:1.0.2
  • 网址:http : //htop.sourceforge.net/

    1. 按F2进入设置窗口
    2. 在设置列中选择列
    3. 转到可用列
    4. 添加处理器 htop 选择处理器
    5. 检查 CPU 列 带有 cpu 列的 htop

最佳

  • 测试版本:procps 3.3.8
  • 网址:http : //gitorious.org/procps

    1. 点击 f 进入字段管理窗口
    2. 选择 P(上次使用的 CPU)

这是最后一列的示例 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
Run Code Online (Sandbox Code Playgroud)

ps

PSR 是显示处理器 ID 的 CODE。您可以使用格式选项,ps -o pid,psr或者简单地做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]
Run Code Online (Sandbox Code Playgroud)