JVM学习笔记(5)——JVM线上问题排查

简介: JVM学习笔记(5)——JVM线上问题排查

一、JVM线上问题排查

案例分析

JVM内存设置越大,FGC耗时越长

CPU 100%问题排查

系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路

JVM优化调试使用心得与线上CPU100%原因分析

如果想看线程的jstack,就得把线程号转为16进制再 jstack,前面要加0x。如果想看进程的jstack,直接jstack加上线程号就行,但是他会列出进程下的所有线程


重点关注线程的状态:Waiting

关注这个Waiting on,表明该线程在等待什么


二、怎么找持有这把锁的线程?

搜索jstack dump信息,找,看哪个线程持有这把锁

三、jstack和jmap

jstack

jstack建议看这篇文章,写的非常好

jstack

jmap

设置JVM参数,发生OOM的时候会自动导出Dump文件

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof

线上系统,内存特别大,执行jmap指令执行期间会对进程产生很大影响,甚至卡顿,慎用

jmap -histo 进程ID - - - 看内存中的对象

jmap -dump:format=b,file=文件名 [pid] - - - 导出Dump文件

jhat -port 端口 filePath - - - 配合Jmap使用

注意如果Dump文件太大,可能需要加上-J-Xmx512m这种参数指定最大堆内存,即

jhat -J-Xmx512m -port 9998 /tmp/dump.dat

四、在线排查

为什么需要在线排查

在线排查强烈推荐阿里的开源神器——Arthas(阿尔萨斯)

之后会出一篇专门讲这个

目录
相关文章
|
7月前
|
监控 Java 索引
cpu使用率过高和jvm old占用过高排查过程
cpu使用率过高和jvm old占用过高排查过程
184 2
|
7月前
|
缓存 算法 安全
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(二)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
74 0
|
7月前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
166 0
|
5月前
|
监控 安全 Java
JVM内存问题之排查Direct Memory泄漏有哪些常用方法
JVM内存问题之排查Direct Memory泄漏有哪些常用方法
170 2
|
5月前
|
监控 Java Linux
JVM内存问题之如果堆内存一直缓慢上涨,如何解决
JVM内存问题之如果堆内存一直缓慢上涨,如何解决
705 1
|
5月前
|
缓存 算法 Java
JVM内存溢出(OutOfMemory)异常排查与解决方法
JVM内存溢出(OutOfMemory)异常排查与解决方法
|
7月前
|
存储 监控 Java
三万字长文:JVM内存问题排查Cookbook
本文主要系统性地整理了排查思路,为大家遇到问题时提供全面的排查流程,不至于漏掉某些可能性误入歧途浪费时间。
|
7月前
|
监控 算法 Java
JVM问题排查宝典
本文介绍了JVM问题排查与学习的经验,包括使用VisualVM监控本地JVM、通过GCViewer和gceasy分析GC日志、使用MAT分析OOM以及查询官方JVM参数。还提到了一个第三方网站HeapDump,提供简化版的JVM参数分析和生成服务,以快速生成适合特定环境的JVM配置。此外,推荐了几本深入学习JVM的书籍,并提供了进一步学习JVM问题的资源。
89 1
|
7月前
|
Java Linux Arthas
linux上如何排查JVM内存过高?
linux上如何排查JVM内存过高?
1097 0
|
7月前
|
消息中间件 Java 应用服务中间件
深入理解JVM - 如何排查分区溢出问题
深入理解JVM - 如何排查分区溢出问题
100 0