- 查看服务的进程是否存在
ps -ef | grep 服务名 ps -aux | grep 服务名
- 查看服务的日志
cat -n xxx_log |grep "OutOfMemoryError"
「java.lang.OutOfMemoryError GC overhead limit exceeded oracle官方给出了这个错误产生的原因和解决方法:」
❝ 大概意思就是说,JVM花费了98%的时间进行垃圾回收,而只得到2%可用的内存,频繁的进行内存回收(最起码已经进行了5次连续的垃圾回收),JVM就会曝出ava.lang.OutOfMemoryError: GC overhead limit exceeded错误。❞ - 查看堆内存占用概况
jmap -heap 进程号
- 查看堆中对象的统计信息
jmap -histo 进程号 | head -n 100
- 查看GC统计信息
jstat -gcutil 进程号
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.00 100.00 99.94 90.56 87.86 875 9.307 3223 5313.139 5322.446
S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:Eden Space(伊甸园)区使用比例
O:Old Gen(老年代)使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
- 生产对堆快照Heap dump
jmap -dump:format=b,file=/tmp/进程号_jmap_dump.hprof 进程号
排查线上环境OOM问题
最新推荐文章于 2024-06-24 17:23:19 发布