[转帖]判断Linux进程在哪个CPU核运行的方法
判断Linux进程在哪个CPU核运行的方法
原文网址:http://www.embeddedlinux.org.cn/html/xinshourumen/201601/30-5013.html
问题:有一个Linux进程运行在多核处理器系统上,如何查看该进程运行在哪个CPU上?
方法一:
如果一个进程使用taskset命令明确的被固定(Pinned)到CPU的特定内核上,你可以使用taskset命令找出被固定的CPU内核:
taskset -c -p <pid>
例如,如果你对PID为5357的进程感兴趣,你可以使用如下命令来查看其运行在哪个CPU上:
taskset -c -p 5357
运行结果:pid 5357's current affinity list:5,输出显示这个进程被固定在5号CPU上。但是,如果你没有明确固定该进程到任何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 COMM
5357 10 prog
输出表示进程的 PID 为 5357(名为”prog”)目前在编号为 10的CPU 上运行着。如果该过程没有被固定,PSR 列会根据内核可能调度该进程到不同CPU而改变显示。
方法三:
top 命令也可以显示CPU被分配给哪个进程。首先,在top命令中使用"P"选项。然后,按“F”键,显示中会出现“Last used CPU”列。目前使用的CPU将出现在"P"(或“PSR”)列下。
步骤如下:
1、top -p 3393
2、按下 “F”键
3、使用上下键选择P = Last Used Cpu,并按下空格键,出现 “*”即可
4、按下“Q”键
相比于ps命令,使用top命令的好处是:你可以连续监视随着时间的改变,CPU是如何分配的。
方法四:
另一种来检查一个进程/线程当前使用的是哪个CPU的方法是使用 htop 命令。
从命令行启动htop。按“F2”键,进入“Columns”,在“Available Columns”下添加PROCESSOR,按“F10”保存,每个进程当前使用的CPU ID将出现在CPU列中。
请注意,所有以前使用的命令 taskset,ps 和 top 分配CPU 内核的 IDs 为 0,1,2,…,N-1。然而,htop 分配 CPU 内核 IDs 从 1开始(直到 N)。
最新文章
- Power BI for Office 365(六)Power Map简介
- [No000023]为何没有更多人从事程序员的工作?程序员常有,优秀程序员不常有!
- 【leetcode】Rotate List(middle)
- SQlserver 行转列
- Python 虚拟环境:Virtualenv
- iMAC——关闭自动弹出手机照片
- 让BOOTSTRAP默认SLIDER支持触屏设备
- HTTP的一些基础知识
- 代码收藏 JS实现页内查找定位功能
- groovy学习(二)map
- 项目架构开发:数据访问层之UnitOfWork
- homebrew &; brew cask使用技巧及Mac软件安装
- sleep,yield,wait,notify,notifyAll
- es6-promise源代码重点难点分析
- 使用PageHepler分页
- Hibernate 二(一级缓存,多表设计之一对多)
- spring cloud心跳检测自我保护(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY&#39;RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.)
- better-scroll项目中遇到的问题
- [MySQL5.6] 最近对group commit的小优化
- Web 数据源