概述
通常jvm程序消失,或者内存占用过大
1.java程序占用内存过大,被操作系统杀掉
2.java程序出现OOM
出现OOM首先要拿到HeapDump日志信息
有以下方法:
- java运行中添加-XX:HeapDumpOnOutMemoryError参数
- jmap -dump:live,live,format=b,file="路径" pid
(pid可以通过jps获取) 可以获取正在运行堆栈信息,但jmap都在线上运行会影响线上线程,所以可在测试环境下进行重现方式 - 使用阿里的 arthas https://arthas.aliyun.com/doc/quick-start.html
使用步骤:
curl -O https://arthas.aliyun.com/arthas-boot.jar
#显示全部进程 选择需要观察的序号
java -jar arthas-boot.jar
#选了序号后 等待片刻进入目标进程
#dump到指定文件
heapdump /tmp/dump.hprof
#只dump live对象
heapdump --live /tmp/dump.hprof
#介绍几个其他常用的指令
dashboard #展示当前进程的信息
thread id #打印线程ID的栈信息
thread -b #可以查看方便查看死锁
jad *.class #可以获取class的反编译代
最后
以上就是苗条毛巾为你收集整理的arthas 排查内存溢出_小白java系列-OOM问题排查实例的全部内容,希望文章能够帮你解决arthas 排查内存溢出_小白java系列-OOM问题排查实例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复