判断Linux 进程运行在哪个 CPU 内核上的 4 个方法

 我来答
huanglenzhi
2016-06-19 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517185
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  方法一
  如果一个进程使用 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 内核,你应该使用如下所述的方法。
  方法二
  ps 命令可以告诉你每个进程/线程目前分配到的 (在“PSR”列)CPU ID。
  $ ps -o pid,psr,comm -p <pid>
  PID PSR COMMAND
  5357 10 prog
  输出表示进程的 PID 为 5357(名为”prog”)目前在CPU 内核 10 上运行着。如果该过程没有被固定,PSR 列会根据内核可能调度该进程到不同内核而改变显示。
  方法三
  top 命令也可以显示 CPU 被分配给哪个进程。首先,在top 命令中使用“P”选项。然后按“f”键,显示中会出现 “Last used CPU” 列。目前使用的 CPU 内核将出现在 “P”(或“PSR”)列下。
  $ top -p 5357
  Linux 有问必答:如何知道进程运行在哪个 CPU 内核上?
  相比于 ps 命令,使用 top 命令的好处是,你可以连续监视随着时间的改变, CPU 是如何分配的。
  方法四
  另一种来检查一个进程/线程当前使用的是哪个 CPU 内核的方法是使用 htop 命令。
  从命令行启动 htop。按 键,进入”Columns”,在”Available Columns”下会添加 PROCESSOR。
  每个进程当前使用的 CPU ID 将出现在“CPU”列中。
  Linux 有问必答:如何知道进程运行在哪个 CPU 内核上?
  请注意,所有以前使用的命令 taskset,ps 和 top 分配CPU 内核的 IDs 为 0,1,2,…,N-1。然而,htop 分配 CPU 内核 IDs 从 1开始(直到 N)。
在晴天的雨伞
2018-06-26 · TA获得超过6869个赞
知道大有可为答主
回答量:5761
采纳率:86%
帮助的人:1214万
展开全部
ps -eo pid,args,psr
参数的含义:
pid - 进程ID
args - 该进程执行时传入的命令行参数
psr - 分配给进程的CPU
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式