Linux下如何查看进程在哪,方法是什么

Admin 2022-07-20 群英技术资讯 787 次浏览

这篇文章主要讲解了“Linux下如何查看进程在哪,方法是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。

查看方法:1、利用top命令,该命令可以显示进程在哪个CPU上运行,语法为“top -p 进程号”;2、利用taskset命令,该命令用于查看进程或线程运行在哪个CPU上,语法为“taskset -p 进程号”。

本教程操作环境:linux7.3系统、Dell G3电脑。

linux怎么查看进程在哪个cpu上

方法一:使用top命令

top 命令可以显示进程在哪个CPU上运行,可以连续监视随着时间的改变,该进程运行在哪个cpu上是否发生变化。

使用步骤:

top -p [进程号],例如 top -p 3000

按下"F"键,使用上下键选择P = Last Used Cpu,并按下空格键,出现 “*”即代表选中,再按“q"退出。

方法二:使用taskset命令

taskset可以查看具体某一进程(或 线程)运行在哪个cpu上,也可以使某个程序运行在某个或某些cpu上

taskset 参数选项:

(1)-p, --pid :操作现有的PID,不启动新任务

(2)-c, --cpu-list :指定处理器的数字列表,而不是位掩码。列表可以包含多个项目,以逗号和范围分隔。例如,0、5、7、9 - 11。

1)显示进程运行的CPU: -p参数

例子1:

[root@localhost ~]# taskset -p 21184

显示结果:

pid 21184’s current affinity mask: ffffff

注:21184是进程编号。显示结果的ffffff实际上是二进制24个低位均为1的bitmask,每一个1对应于1个CPU,表示该进程在24个CPU上运行。

例子2:

[root@localhost ~]# taskset -p 2030

显示结果:

pid2030’s current affinity mask: f

注:说明sshd在4颗CPU上随机进行切换。

例子3:

[root@localhost ~]# taskset -p 2726

显示结果:

pid 2726’s current affinity mask: 3

注:显示的十进制数字3转换为2进制为最低两个是1,每个1对应一个cpu,所以进程运行在2个cpu上。

*注意:*cpu的标号是从0开始的,所以cpu1表示第二个cpu(第一个cpu的标号是0)。

关于换算方式

8个核心的CPU ID: 7 6 5 4 3 2 1 0

对应10的十进制数位: 128 64 32 16 8 4 2 1

十六进制的16个数是:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F

对应每一个16进制的二进制位:0=0000,1=0001,2=0010,3=0011,4=0100,5=0101,6=0110,7=0111,8=1000,9=1001,A=1010,

B=1011,C=1100,D=1101,E=1110,F=1111

那么例如出现pid 8987’s current affinity mask: ff ff是16进制,转换二进制:11111111,意思就是sshd在8个CPU上进行却换!所以对应每一个数值!

比如说16进制的40,那么转换二进制01000000,意思就是在第7块CPU上运作


上述内容具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多"Linux下如何查看进程在哪,方法是什么"的内容,大家可以关注群英网络的其它相关文章。 群英智防CDN,智能加速解决方案
标签: linux查看进程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服