加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux下怎样查看进程在哪,方法是什么

发布时间:2023-08-31 18:04:55 所属栏目:Linux 来源:转载
导读:   这篇文章主要讲解了“Linux下如何查看进程在哪,方法是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获
  这篇文章主要讲解了“Linux下如何查看进程在哪,方法是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。
 
  查看方法:1、利用top命令,该命令可以显示进程在哪个CPU上运行,语法为“top -p 进程号”;2、利用taskset命令,该命令用于查看进程或线程运行在哪个CPU上,语法为“taskset -p 进程号”。
 
  方法一:使用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上运作
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章