JVM问题排查

这里记录一些学到的JVM排查

最基本的:
jstack (我把它理解为java 的堆栈 )命令 查看线程的运行情况,可以查到哪一个线程出现了死锁。


jmap 查询Jvm 各个内存区域的使用情况 参数很多 比如jmap -heap pid(堆的id)
他会打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息


图片.png

jstat 命令可以查询垃圾回收的情况 特别是关注fullgc,如果fullgc比较频繁 那么就需要进行调优了


可以查到占用CPU最多的线程,定位到具体的方法,优化方法的执行。来个例子 某天你发现CPU爆满,大牛没来上班。
那么你应该怎么定位呢?
首先
1 TOP, 通过 top命令查找到这个消耗CPU最大的进程号PID 8958
有了pid
2 top -Hp pid 查到这个进程下所有的线程,列表中会显示它们的CPU 内存 占用。
3 jstack 找到具体的线程之后 你可以查看线程的具体信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容