1、使用top命令查找出消耗最多的进程id
$ top #进程 $ top -H #线程
2、查看进程中具体线程的资源消耗情况
$ strace -p [线程ID]
3、将线程ID转成16进制
$ printf "%x\n" [线程ID]
4、查找具体阻塞的代码中的方法
$ jstack [进程ID] |grep [转好的16进制] -A 30
5、其他的一些常用命令
$ htop #top的升级版,一般需要安装,centos7安装如下 $ yum install epel-release -y $ yum install htop -y
6、jstat和jmap(此仅限于了解,待做详细总结)
jstat -class [进程ID] #查看加载了多少类以及对应的信息 jstat -compiler [进程ID] #查看编译的数量, 成功和失败的数量和类型 jstat -gc [进程ID] #查看垃圾回收的统计信息 通过jstat可以对jvm堆的内存进行统计分析,而jmap可以获取到更加详细的内容 如:内存使用情况的汇总、对内存溢出的定位与分析。 jmap -heap [进程ID] #heap内存的使用情况 jmap -histo [进程ID] | more #查看内存中对象数量及大小 jmap -histo:live [进程ID] | more #查看内存中对象活跃数量及大小 jmap -dump:format=b,file=/tmp/dump.dat [进程ID] #将内存使用情况dump到文件中 jhat -port [端口] dump.dat #通过jhat对dump文件进行分析
原文地址:https://www.cnblogs.com/zhaihongchang/p/11333425.html
时间: 2024-10-11 11:00:14