zoukankan      html  css  js  c++  java
  • java内存异常自动dump

    如何自动dump资源

    我们可以让JAVA应用在OOM时dump一份内存快照,事后我们只要分析这个内存快照,一下就可以知道是哪些可恶的对象占用了所有的内存,并且还无法释放。此时你就需要在JVM的启动参数中加入如下的一些参数:

    -XX:+HeapDumpOnOutOfMemoryError
    -XX:HeapDumpPath=/opt/agents/java-dump/

    第一个参数意思是在OOM的时候自动dump内存快照出来,第二个参数是说把内存快照放到哪儿去,只要你加入了这两个参数,在JVM OOM崩溃的时候,无论你是立马主动收到一个报警,还是被动让客服通知了你,立马就可以去找OOM时候的内存快照了。

    JVM的启动参数中加入如下的一些参数

    在test环境中增加:

    '-XX:OnOutOfMemoryError=/opt/agents/sre-sh/file_rename.sh /opt/agents/java-dump/xxxx.hprof',
    '-XX:+HeapDumpOnOutOfMemoryError', '-XX:HeapDumpPath=/opt/agents/java-dump/xxxxx.hprof',
    

    如何手动dump资源:

    1、进入pod的终端界面执行以下任意命令:

    jmap -dump:live,file=/opt/agents/java-dump/xxx.dump 1
    jmap -dump:format=b,file=/opt/agents/java-dump/xxx.dump 1

  • 相关阅读:
    使用vue-cli脚手架搭建简单项目框架
    总结HTML5
    导出网页内容
    vue 编写插件
    各ui库项目结构
    webpack 模块方法
    webpack4.0
    webapp优化
    http/2.0与http/1.1的区别
    setTimeout与Promise的区别
  • 原文地址:https://www.cnblogs.com/wudongyu/p/15009329.html
Copyright © 2011-2022 走看看