Linux系列之查看进程线程的方法
在window系统查看系统进程,我们一般会使用Ctrl+Shift+Esc打开系统进程监控页面,但是在Linux系统查看进程一般使用top命令或者ps命令,但是如果要查看线程怎么查看?其实也可以使用这两个命令,所以本博客总结一下几种方法
ps命令
Linux的ps命令用于查看进程统计信息
常用参数:
- a:显示当前终端下的所有进程信息,包括其他用户的进程。
 - u:使用以用户为主的格式输出进程信息。
 - x:显示当前用户在所有终端下的进程。
 - -e:显示系统内的所有进程信息。
 - -l:使用长(long)格式显示进程信息。
 - -f:使用完整的(full)格式显示进程信息。
 - -T:查看进程下面的子线程
 
在使用中可以加上grep命令一起使用,也可以单独使用
# ps命令单独使用的情况
ps -elf tomcat
#结合管道操作和grep命令进行过滤,用于查询某一个进程的信息
ps -elf | grep tomcat
  
 - 1
 - 2
 - 3
 - 4
 
查看进程下面的子线程可以使用命令
ps -T -p pid
  
 - 1
 
pid是具体的进程ID,加上-T查看具体的进程下面的线程,ps可以用来查看进程,也可以用来查看线程,需要注意一下
 
top命令
top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,有点像window系统的任务管理器
语法:
top [param]
  
 - 1
 
param为:
- -b:以批处理模式操作;
 - -c:显示完整的治命令;
 - -d:屏幕刷新间隔时间;
 - -I:忽略失效过程;
 - -s:保密模式;
 - -S:累积模式;
 - -u [用户名]:指定用户名;
 - -p [进程号]:指定进程;
 - -n [次数]:循环显示的次数。
 - -H:查看进程下面的子线程
 
top命令分为上下两个部分:
- 系统统计信息
 - 系统进程信息

系统统计信息 
top - 11:38:01 up 231 days,  2:06,  1 user,  load average: 0.88, 0.22, 0.18
Tasks: 170 total,   1 running, 169 sleeping,   0 stopped,   0 zombie
%Cpu(s): 38.7 us,  3.5 sy,  0.0 ni, 42.0 id, 15.5 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  8010580 total,   927820 free,  2411572 used,  4671188 buff/cache
KiB Swap:  4063228 total,  2933688 free,  1129540 used.  5153128 avail Mem 
  
 - 1
 - 2
 - 3
 - 4
 - 5
 
-  
row1:任务队列信息,同 uptime 命令的执行结果
top - 11:38:01 up 231 days, 2:06, 1 user, load average: 0.88, 0.22, 0.18- 11:38:01 (当前系统时间)
 - up 231 days, 2:06(系统运行时间)
 - 1 user (当前登录用户数)
 - load average: 0.88, 0.22, 0.18 (系统的平均负载数,表示 1分钟、5分钟、15分钟到现在的平均数)
 
 -  
row2:进程统计信息
Tasks: 170 total, 1 running, 169 sleeping, 0 stopped, 0 zombie- 170 total(系统当前总进程总数)
 - 1 running (正在运行的进程数)
 - 169 sleeping(睡眠进程数)
 - 0 stopped (停止进程数)
 - 0 zombie (僵尸进程数)
 
 -  
row3:CPU 统计信息
%Cpu(s): 38.7 us, 3.5 sy, 0.0 ni, 42.0 id, 15.5 wa, 0.0 hi, 0.3 si, 0.0 st- 38.7 us, (用户空间CPU占用率)
 - 3.5 sy (内核空间CPU占用率)
 - 0.0 ni (用户进程空间改变过优先级的进程CPU的占用率)
 - 42.0 id(空闲CPU占有率)
 - 15.5 wa (等待输入输出的CPU时间百分比)
 - 0.0%hi (硬件中断请求)
 - 0.3%si (软件中断请求)
 - 0.0%st (分配给运行在其它虚拟机上的任务的实际 CPU时间)
 
 -  
row4:内存状态
KiB Mem : 8010580 4671188 , 927820 free, 2411572 used, 4671188 buff/cache- 4671188 total (物理内存总量 )
 - 2411572 used (已使用的内存 )
 - 927820 free (空闲内存 )
 - 4671188 buffers (内核缓存使用)
ps:以k为单位 
 -  
row5:swap交换分区信息
KiB Swap: 4063228 total, 2933688 free, 1129540 used. 5153128 avail Mem- 4063228 total (交换分区总量 )
 - 1129540 used (已使用交换分区内存 )
 - 2933688 free (空闲交换分区 )
 - 5153128 cached (缓冲交换区 )
 
 

系统进程信息
- PID :进程id
 - USER :进程所有者的用户名
 - PR :进程优先级
 - NI :nice值。负值表示高优先级,正值表示低优先级
 - VIRT :进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
 - RES :进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
 - SHR :共享内存大小,单位kb
 - S :进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
 - %CPU :上次更新到现在的CPU时间占用百分比
 - %MEM :进程使用的物理内存百分比
 - TIME+ :进程使用的CPU时间总计,单位1/100秒
 - COMMAND :进程名称[命令名/命令行]
 

按“1”键,可打开或关闭显示详细CPU统计信息:
 
 按字母“B”键,可打开或关闭当前进程的显示效果
 
 top -H -p pid,查看进程pid下面的子线程,top命令也可以用来查看线程·,常被忽略这个用法
 
htop命令
htop命令可以理解为htop命令的加强版,默认会带上颜色的,而且直观性等等这些功能会更强一些,不过linux系统一般不默认安装,如果是centos,可以使用yum直接安装
sudo yum install epel-release  
sudo yum install htop
  
 - 1
 - 2
 
安装好之后直接使用htop,命令返回的很多参数和top类似,所以描述就省略,为了直接显示,可以按F2,将Tree view和show custom thread names开放出来,然后按F10保存退出
 
 htop网上有两遍相对比较详细的可以参考:
- https://blog.csdn.net/lovedingd/article/details/120784528
 - https://z.itpub.net/article/detail/0BF005735A2D6E1C71AAEE7479B00406
 
知识点归纳
总结:top命令和ps经常被用于查看linux系统进程,但是也可以查看线程,top命令是通过top -H -p pid,而ps是通过ps -T -p pid查看,这些命令常被用于排查性能问题,比较常用,需要花点时间掌握。如果为了查看更加直观,可以使用htop,htop是默认不安装,可以进行自行安装
参考资料
文章来源: smilenicky.blog.csdn.net,作者:smileNicky,版权归原作者所有,如需转载,请联系作者。
原文链接:smilenicky.blog.csdn.net/article/details/124802056
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)