Linux系统中如何查询进程启动时所在的处理器核心?
查询进程启动时所在的处理器核心
Linux 系统
如果系统启用了进程审计(auditd服务运行中),可以通过审计日志回溯进程启动时的核心,但默认多数系统未开启该功能。日常场景下,若进程未被内核调度器迁移过,可通过以下命令查看当前绑定的核心(即启动时核心):
- 执行命令:
ps -o pid,psr -p <你的进程PID>- 输出中的
psr列即为进程当前运行的核心编号(从0开始计数,双核心系统对应0和1)
- 输出中的
- 也可直接读取proc文件:
cat /proc/<你的进程PID>/stat | awk '{print $39}'- 返回值同样是当前核心编号
注意:Linux内核默认会动态调度进程在不同核心间切换,若进程已被迁移,上述方法只能获取当前核心,无法直接得到启动时的核心。若需追踪启动时信息,需提前配置
auditd记录进程启动事件。
Windows 系统
图形化操作
- 打开任务管理器,切换到「详细信息」标签
- 找到对应PID的进程,右键选择「设置相关性」
- 弹窗中灰色勾选的核心即为该进程当前绑定的核心(若未手动修改过,通常就是启动时分配的核心)
命令行方式
- PowerShell命令:
Get-Process -Id <你的进程PID> | Select-Object Id, ProcessorAffinityProcessorAffinity的数值是二进制掩码,双核心系统中:- 数值
1对应核心0(二进制01) - 数值
2对应核心1(二进制10) - 数值
3表示可在两个核心间切换(二进制11)
- 数值
- WMIC命令:
wmic process where processid=<你的进程PID> get ProcessId, ProcessorAffinity- 解释规则同上
内容的提问来源于stack exchange,提问作者vsudarik
相关产品推荐
相关产品推荐

