linux查看某个pid的所有进程;排查进程下的线程
2026/7/23 17:16:30 网站建设 项目流程

top -H -p $PID #查看对应进程的那个线程占用CPU过高

1、top -H
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。
2、ps xH
手册中说:H Show threads as if they were processes
这样可以查看所有存在的线程。
3、ps -mp
手册中说:m Show threads after processes
这样可以查看一个进程起的线程数。

排查进程下的线程

一般遇到服务很卡的时候都会上去先看一下服务器是否正常,一般是先top看下cpu内存占用;如果在top下看到某个进程的cpu/内存占用很高;

则进一步用top -H -p <pid即在top中有问题的那个进程id>查看这个进程下的所有线程,看看是哪个线程有问题;

这里定位到线程id后,java应用接下来就是要看线程栈

# 查看哪个 Java 进程 CPU 高top# 查看该 Java 进程哪些线程 CPU 高top-H-p<pid># 将高 CPU 线程 ID 转为 16 进制printf"%x\n"<tid># 查看线程栈jstack<pid>|grep-A30"nid=0x<hex_tid>"

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询