zoukankan      html  css  js  c++  java
  • jvm 内存溢出

    堆内存溢出

      堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java heap space

    永久代溢出

      类的一些信息,如类名、访问修饰符、字段描述、方法描述等,所占空间大于永久代最大值,就会出现OutOfMemoryError:PermGen space

    内存溢出的检测方法

    Jdk/bin目录下有很多检测工

    图形界面: Jconsole Jvisualvm

    命令行工具

      Jstat –gcutil pid 1000 100      FullGC频率:单次FullGC时间<200ms

      

      Jmap –histo pid | head -20

      

      Jmap –heap pid

      

    工程日志报错

    jvm 常见参数

      -Xms2048m,初始堆大小,建议<物理内存的1/4,默认值为物理内存的1/64

      -Xmx2048m,最大堆大小,建议与-Xms保持一致,默认值为物理内存的1/4

      -Xmn512m,新生代大小,建议不超过堆内存的1/2 -Xss256k,线程年轻代堆栈大小,建议256k

      -XX:PermSize=256m,永久代初始值,默认值为物理内存的1/64

      -XX:MaxPermSize=256m,永久代最大值,默认值为物理内存的1/4

      -XX:SurvivorRatio=8:年轻带中Eden区和Survivor区的比例,默认为8:1,即Eden(8),From Space(1),ToSpace(1)

      -XX:+UseConcMarkSweepGC:开启CMS垃圾回收器

    jmap -histo pid 查看收集对象信息(对象大小的收集)

    jmap -histo pid | head -20 查看前20个对象信息

  • 相关阅读:
    python画图axis和axes以及subplot的区别
    LSTM block和cell区别
    go语言之用户输入&类型别名&类型转换
    Go 语言运算符
    go语言的常量
    go语言之数据类型和格式化输出
    go语言之变量
    requests+django+bs4实现一个web微信的功能
    python读取es中的所有数据并计算md5然后进行持久化
    python的os模块fnmatch模块介绍
  • 原文地址:https://www.cnblogs.com/dwdw/p/11020544.html
Copyright © 2011-2022 走看看