• JVM参数配置模板


    1。解决问题的初步思路

    发生了OOM,必然说明系统中某个区域的对象太多了,塞满了那个区域,而且一定是无法回收的对象,最终导致内存溢出。

    2。保存现场

    在OOM时候保存一份内存快照,事后分析内存快照,检查那些对象占用了内存无法释放。

    -XX:+HeapDumpOnOutOfMemoryError

    -XX:HeapDumpPath=/user/local/oom

    第一参数意思在OOM的时候自动dump内存快照出来

    第二参数是把内存快照放到哪去

    3。JVM参数模板---4核8G

    -Xms4096M              初始堆大小

    -Xmx4096M              堆最大值

    -Xmn3072M             堆年轻代大小

    -Xss1M                       设置线程栈大小

    -XX:MetaspaceSize=256M               metaspace的大小

    -XX:MaxMetaspaceSize=256M      metaspace的最大大小

    -XX:+UseParNewGC

    -XX:+UseConcMarkSweepGC         

    -XX:CMSInitiatingOccupancyFaction=92   CMS垃圾收集器,当老年代达到92%时,触发CMS垃圾回收

    -XX:+UseCMSCompactAtFullCollection      打开对老年代的压缩,可能会影响性能,但可以消除堆碎片

    -XX:CMSFullGCsBeforeCompaction=0        每次CMS GC后对堆空间进行压缩、整理

    -XX:+CMSParallelInitiaMarkEnabled         初始标记并行执行

    -XX:+CMSScavengeBeforeRemark        在Full GC之前触发一次Young GC

    -XX:+DisableExplicitGC       禁止使用System.gc

    -XX:+PringGCDetails     开启GC日志                               

    -Xloggc:gc.log               日志文件输出路径

    -XX:+HeapDumpOnOutOfMemoryError

    -XX:HeapDumpPath=/user/local/oom

    参考自:狸猫技术窝

  • 相关阅读:
    利用余数选择特殊位置元素
    CSS hack
    css选择器
    按yyyy-mm-dd格式输入一个日期,判断这是这一年的第几天
    输入不同year,month,打印月历
    java学习之多线程(二)
    java学习之多线程
    剑指offer--第一个只出现一次的字符
    剑指offer--两个链表的第一个公共结点
    剑指offer--最小的k个数
  • 原文地址:https://www.cnblogs.com/technologykai/p/12857934.html
Copyright © 2020-2023  润新知