直播平台搭建,Java 内存溢出的排查方法
直播平台搭建,Java 内存溢出的排查方法
JDK 自带命令
jstat -gcutil 33816 250 20 # 监控 jvm 的内存使用情况 jps -ml # 输出虚拟机启动时传递给主类 main() 的参数,输出主类的全名 jmap -F -dump:live,format=b,file=dump.bin 85962 # dump 堆内存 # 分析方法 # 可以使用 VisualVM,主要查看是否存在大对象,然后分析为什么没有被回收 jstack -F -l -m 85962 # 显示虚拟机快照 jstack -l PID >> test.txt jmap -histo pid # 实时查看JVM对象大小的排序结果,但无法看到对象的具体内容
Arthas
# 找到最耗CPU的方法 thread -n 5 # 观察方法的返回 watch com.test.MyClass query returnObj # 反编译类 jad com.test.MyClass # 监控调用情况 monitor -c 5 com.test.MyClass query # 查看分段的调用时间 trace com.test.MyClass query # 查看方法完整的调用链 stack com.test.MyClass query # 记录调用现场 tt -t com.test.MyClass query
参数检查
-Xms 初始堆大小 -Xmx 最大堆大小 -Xmn 新生代大小 XX:MaxMetaSpaceSize 元数据区大小 Survivor Eden与Survivor区的大小比值
以上就是直播平台搭建,Java 内存溢出的排查方法, 更多内容欢迎关注之后的文章