一、命令
jmap
内存分析:
1、jps   #查到服务的进程
2、jmap -histo 进程号  #查看历史生产的实例
2.1、 jmap - histo pid | head -20  查看前20 个
3、jmap -histo:live 进程号  #查看当前存活的实例,执行过程中可能会触发一次full gc
4、jmap -histo:live 进程号 >.abc.txt  #将实例的统计情况输出到文件
5、jmap -dump:format=b,file=eureka.hprof 进程号  #堆栈详细信息输出到flie指定的文件
6、jmap -heap pid  :查看各个内存使用情况

jstat
upc分析:
5、top 查询cpu占比高的java进程
6、jstat -gc pid 500 0   #每5秒小时pid进程的gc情况。其中EC EU表示年轻代的容量、使用量。OC、OU是老年代的容量、使用量
7、ps aux | grep PID  #这个进程是哪来的。属于当前状态的采样数据
8、ps -mp pid -o THREAD,tid,time  #这个进程下所有线程的情况,包含cpu占比、占用cpu的时长。属于当前状态的采样数据
9、printf “%x\n” tid  #将线程id转换为16进制
10、jstack pid |grep tid -A 30
11、pstree -p [pid] | wc -l    #查看该进程的线程数量

别的shell命令
1、cat abc.log | grep "jdresponse code=403" -c 【-c是统计出现的次数】

二、工具
jdk自带的jvisualvm

第三方Arthas

posted on 2023-04-14 14:29  天马行空的秋意  阅读(480)  评论(0编辑  收藏  举报