美文网首页
如何快速感知到jvm oom了?

如何快速感知到jvm oom了?

作者: 磐石的力量 | 来源:发表于2017-12-18 15:29 被阅读0次

    线上有些应用会不定期的oom,当出现jvm oom, 应用有可能挂掉,也可能不会挂掉,主要看

    jvm中是否还有非守护线程,出现jvm oom时,线上应用部分功能正常,部分功能不正常,

    如何能做到快速让业务方感知到jvm oom,  快速干预oom呢?

    1、监控OutOfMemoryError打印的堆栈日志

    2、配置-XX:OnOutOfMemoryError="kill -9 %p", 让jvm 主动kill 掉,可以通过一些进程监控,或者流量监控的功能发现进程挂掉了

    3、不kill进程,只是发送个报警信息,-XX:OnOutOfMemoryError="sh oom.sh %p"

    #!/bin/sh

    #set -e

    #set -x

    pid=$1

    appName=$(jinfo -sysprops $pid|grep app.name|awk -F" = " '{print $2}')

    ip=`hostname -i`

    curl --connect-timeout 1 -m 3 -s -o /dev/null http://监控域名/api/oom_alarm?ip=$ip\&pid=$pid\&appName=$appName

    因为线上有些应用是单机部署的,不想主动kill, 故选用第三种方式

    相关文章

      网友评论

          本文标题:如何快速感知到jvm oom了?

          本文链接:https://www.haomeiwen.com/subject/kurmwxtx.html