【调试】linux top查看线程/进程

目录

即看即用

查看进程的线程

查看主线程和新线程的关系

查找线程的父进程

详细说明

方法一:PS

方法二: Top

方法三: Htop

top、iftop、iotop、htop、atop工具区别

​​​​​​pstree命令详解

参考或摘取


作者:bandaoyu,原文地址:https://blog.csdn.net/bandaoyu/article/details/113697346

即看即用

查看进程的线程

1、查看某个进程的线程

ps -T -p <pid>

top -H -p <pid>

通过名字

top -H -p $(pidof name)

top -H -p $(pgrep -f name)

linux命令获取进程pid:https://blog.csdn.net/weixin_39983912/article/details/111801137

只查某几个进程的信息

top -p 21538,31117,31116,31115,31114

2、查看所有的线程

top -H  

top翻页:Shift+<   上翻    Shift+> 下翻

查看主线程和新线程的关系

pstree -p 主线程id (主线程ID 就是进程ID?)

根据进程名字进行查询:

# pstree -p `ps -e | grep server | awk '{print $1}'`

# pstree -p `ps -e | grep server | awk '{print $1}'` | wc -l

查找线程的父进程

查到瓶颈线程的ID是2256592,查找其父进程

pstree -UApu|grep 2256592 -A 5 -B 10

-A 5  -B 10 表示取匹配行的前面10行和后面5行

[root@rdma59 ]# pstree -UApu|grep 2256592 -A 5 -B 10
           |-ceph-mon(2256511,ceph)-+-{ceph-mon}(2256541)
           |                        |-{ceph-mon}(2256556)
           |                        |-{ceph-mon}(2256557)
           |                        |-{ceph-mon}(2256558)
           |                        |-{ceph-mon}(2256563)
           |                        |-{ceph-mon}(2256564)
           |                        |-{ceph-mon}(2256565)
           |                        |-{ceph-mon}(2256589)
           |                        |-{ceph-mon}(2256590)
           |                        |-{ceph-mon}(2256591)
           |                        |-{ceph-mon}(2256592)
           |                        |-{ceph-mon}(2256593)
           |                        |-{ceph-mon}(2256594)
           |                        |-{ceph-mon}(2256595)
           |                        |-{ceph-mon}(2256596)
           |                        |-{ceph-mon}(2256597)

可以看出,线程2256592  由ceph-mon(2256511)创建

详细说明

技术|Linux有问必答:Linux上如何查看某个进程的线程

方法一:PS

在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。

  1. $ ps -T -p <pid>

“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。

 你可以用 ps -eLf |grep XXX 来查看程序运行所产生的线程情况;  也可以用 ps axms | grep XXX;

方法二: Top

top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。

  1. $ top -H

要让top输出某个特定进程<pid>并检查该进程内运行的线程状况:

 
  1. $ top -H -p <pid>

方法三: Htop

一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。

要在htop中启用线程查看,请开启htop,然后按<F2>来进入htop的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。

现在,你就会看到下面这样单个进程的线程视图。


via: How to view threads of a process on Linux

top、iftop、iotop、htop、atop工具区别

top、iftop、iotop、htop、atop工具:https://blog.csdn.net/bandaoyu/article/details/95407670

​​​​​​pstree命令详解

pstree命令是用于查看进程树之间的关系,即哪个进程是父进程,哪个是子进程,可以清楚的看出来是谁创建了谁
#pstree
几个重要的参数:
-A: 各进程树之间的连接以ASCII码字符来连接
-U:各进程树之间的连接以utf8字符来连接,某些终端可能会有错误
-p:同时列出每个进程的PID
-u: 同时列出每个进程的所属账号名称:
例子:
#pstree  -up


可以看到所有的进程都是依附在systemd这个进程下面,它的进程PID是1,因为它是由Linux内核主动调用的一个进程。

可以从中看出来进程所属的用户为dlj,每个进程的pid
而且,25707这个进程有5个子进程,分别为25778,25779,25780,25782,25787
25778这个进程也有几个子线程,分别为,25781,25783,25784,27547,27548

参考或摘取

https://www.cnblogs.com/EasonJim/p/8098217.html

pstree命令详解 - 马昌伟 - 博客园

posted on 2022-10-04 01:24  bdy  阅读(952)  评论(0编辑  收藏  举报

导航