jvm问题追踪

java新手在遇到jvm上的问题,很多时候都是不知所措,下面我介绍一下小问题(仅单机,web)查找的路子,其中有遇到各种jdk的工具都是,仅作为自己的工作备份,后续的会陆续增加。

 

首先查看日志,web server会有很多有用的日志,有些时候直接通过日志就可以搞定这些问题了

日志看完了,我们就从运维的角度来定位问题,找到对应的web机器,top(load average,cpu、内存)查看ctrl+h,找到对应的进程号转16进制,jstack 14400|grep -A 10 4015 ,定位到对应堆栈信息查看一下代码,找到对应的代码直接解决掉。多来几次就逮到了,普通的小问题就差不多解决了。

 

纠结原因常见的分析如下

1、cpu瞬间增加,大多数是项目中有大量的运算或者死循环到导致的。我们直接按照上面的步骤定位

2、不间断的gc,造成jvm的不可能用

3、磁盘满了,这个问题遇到过,尤其调试log的磁盘

4、线程死锁,这个定位问题很简单,可以直接jmx,检测一下就能定位到哪个线程死锁找到对应的代码片段

 

 

需要必须掌握的工具top、jps、jstack、jmap、jstat  基本上能定位到简单的java问题了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值