Linux 查看进程创建的线程

前言

检查线上服务器状态,有时会发现几台机器内存占用很高。一般这种情况肯定是远程登录服务器,然后查看各个进程的内存占用。当发现某个进程占用的内存过高时,首要的检查点通常是进程创建线程的情况,以下则是 Linux 中查看进程拥有的线程的相关命令

1. ps 命令

  1. ps -T p <pid>
    ps 命令中,“-T”选项可以开启线程查看。ps -T p 16241 命令输出如下,其中 SPID列即为线程的 ID。这个命令后面接上 wc 即可统计进程下创建的线程总数 ps -T p 16241 | wc -l
    在这里插入图片描述

  2. ps p <pid> -L -o pcpu,pmem,pid,tid,time,tname,cmd
    示例命令ps p 16241 -L -o pcpu,pmem,pid,tid,time,tname,cmd可以查看所有属于进程 16241 的线程,其中 TID 列就是线程ID。同样,命令后接上 wc 可以统计属于该进程的线程总数
    在这里插入图片描述

  3. pstree -p <pid>
    命令 pstree -pa 25393 以树形的方式显示进程 25393 创建的线程
    在这里插入图片描述

2. top 命令

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

top -H p <pid> 命令可检查该进程内运行的线程状况,示例如下。可以看到线程的总数,及每条线程的 ID 等信息
在这里插入图片描述

3. 查看系统文件

cat /proc/<pid>/status 命令可直接读取系统保存的进程状态文件,其中可以看到进程拥有的线程数量,及其所占用的内存大小。需注意,使用该命令要保证登录所用的账户有系统文件的访问权限
在这里插入图片描述

发布了100 篇原创文章 · 获赞 94 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45505313/article/details/104574823