码迷,mamicode.com
首页 > 系统相关 > 详细

怎样才能找出哪个 CPU 内核正在运行该进程?

时间:2017-11-14 17:15:23      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:cpu 内核正在运行

当你在 多核 NUMA 处理器上运行需要较高性能的 HPC(高性能计算)程序或非常消耗网络资源的程序时,CPU/memory 的亲和力是限度其发挥最大性能的重要因素之一。在同一 NUMA 节点上调度最相关的进程可以减少缓慢的远程内存访问。像英特尔 Sandy Bridge 处理器,该处理器有一个集成的 PCIe 控制器,你可以在同一 NUMA 节点上调度网络 I/O 负载(如网卡)来突破 PCI 到 CPU 亲和力限制。


作为性能优化和故障排除的一部分,你可能想知道特定的进程被调度到哪个 CPU 内核(或 NUMA 节点)上运行。


这里有几种方法可以 找出哪个 CPU 内核被调度来运行给定的 Linux 进程或线程。

方法一


如果一个进程使用 taskset 命令明确的被固定(pinned)到 CPU 的特定内核上,你可以使用 taskset 命令找出被固定的 CPU 内核:


    $ taskset -c -p <pid>


例如, 如果你对 PID 5357 这个进程有兴趣:


    $ taskset -c -p 5357

    pid 5357‘s current affinity list: 5


输出显示这个过程被固定在 CPU 内核 5上。


但是,如果你没有明确固定进程到任何 CPU 内核,你会得到类似下面的亲和力列表。


    pid 5357‘s current affinity list: 0-11


输出表明该进程可能会被安排在从0到11中的任何一个 CPU 内核。在这种情况下,taskset 不能识别该进程当前被分配给哪个 CPU 内核,你应该使用如下所述的方法。


怎样才能找出哪个 CPU 内核正在运行该进程?

标签:cpu 内核正在运行

原文地址:http://13448167.blog.51cto.com/13438167/1981690

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!