现网问题排查实战:Jstat,Jstack,Jmap

遇到问题怎么办:
查看日志tail -f catalina.out
查看应用进程 ps -ef | grep java
查看CPU情况
查看TCP情况 ping
查看java线程,jstack
查看java堆,jmap
通过memory analyser tool 分析.dat堆文件,看shallowed heap和retained heap,寻找无法被回收的对象
解决方式:如可以把有问题的对象置为static,每个类只保有一份

top查看占用cpu最多的进程
然后top -Hd 查看某进程下所有线程
nid是操作系统中线程Id,pid是java中线程Id
然后jstack 进程|grep 线程的十六进制数 看具体堆栈


详情
top发现系统负载高 (load average和us参数的百分比 )JVM内存占用高
jstat -gc pid 查看JVM内存回收情况 发现每5000ms一次full gc
在这里插入图片描述
用jstack可以看到应用线程全部挂起,等待GC后执行

jmap -histo pid查看进程中对象情况,每个对象有多少实例,占用多少内存。

jmap -dump:format=b,file= jvm内存具体情况

用MemoryAnalyer查看大对象

解决在这里插入图片描述
GC常优化参数:
堆大小
永久代大小
GC线程数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值