排查线上环境OOM问题

  1. 查看服务的进程是否存在
    ps -ef | grep 服务名 ps -aux | grep 服务名
  2. 查看服务的日志
    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错误。❞
  3. 查看堆内存占用概况
    jmap -heap 进程号
  4. 查看堆中对象的统计信息
    jmap -histo 进程号 | head -n 100
  5. 查看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:垃圾回收消耗总时间
     
  6. 生产对堆快照Heap dump
    jmap -dump:format=b,file=/tmp/进程号_jmap_dump.hprof 进程号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值