2019独角兽企业重金招聘Python工程师标准>>>

https://blog.csdn.net/szzt_lingpeng/article/details/50463375

-XX:NewRatio

-设置新生代(eden + 2survivor)和老年代(不包含永久区)的比例

-5 老年代:新生代 = 5 即新生代占整个堆内存的1/6

-XX:SurvivorRatio:

-设置新生代里,2*survivor区与eden的比例

-比如8,则两个Survivor:Eden = 2:8,一个Survivor区域占整个新生代的1/10

五、  常见内存错误及解决方案

1.OutOfMemoryError在开发过程中是司空见惯的,遇到这个错误,新手程序员都知道从两个方面入手来解决:一是排查程序是否有BUG导致内存泄漏;二是调整JVM启动参数增大内存。OutOfMemoryError有好几种情况,每次遇到这个错误时,观察OutOfMemoryError后面的提示信息,就可以发现不同之处,如:

  1. java.lang.OutOfMemoryError: Java heap space
  2. java.lang.OutOfMemoryError: unable to create newnative thread
  3. java.lang.OutOfMemoryError: PermGen space
  4. java.lang.OutOfMemoryError: Requested array sizeexceeds VM limit

2.java.lang.OutOfMemoryError:Java heap space

1)原因:Heap内存溢出,意味着Young和Old generation的内存不够。

2)解决:调整java启动参数 -Xms -Xmx 来增加Heap内存。

3.java.lang.OutOfMemoryError:unable to create new native thread

1)原因:Stack空间不足以创建额外的线程,要么是创建的线程过多,要么是Stack空间确实小了。

2)解决:由于JVM没有提供参数设置总的stack空间大小,但可以设置单个线程栈的大小;而系统的用户空间一共是3G,除了Text/Data/BSS/MemoryMapping几个段之外,Heap和Stack空间的总量有限,是此消彼长的。因此遇到这个错误,可以通过两个途径解决:1.通过-Xss启动参数减少单个线程栈大小,这样便能开更多线程(当然不能太小,太小会出现StackOverflowError);2.通过-Xms -Xmx 两参数减少Heap大小,将内存让给Stack(前提是保证Heap空间够用)。

4.java.lang.OutOfMemoryError:PermGen space

1)原因:Permanent Generation空间不足,不能加载额外的类。

2)解决:调整-XX:PermSize= -XX:MaxPermSize= 两个参数来增大PermGen内存。一般情况下,这两个参数不要手动设置,只要设置-Xmx足够大即可,JVM会自行选择合适的PermGen大小。

5.java.lang.OutOfMemoryError:Requested array size exceeds VM limit

1)原因:这个错误比较少见(试着new一个长度1亿的数组看看),同样是由于Heap空间不足。如果需要new一个如此之大的数组,程序逻辑多半是不合理的。

2)解决:修改程序逻辑吧。或者也可以通过-Xmx来增大堆内存。

6.java.lang.OutOfMemoryError: GC overhead limit exceeded

1)原因:在GC花费了大量时间,却仅回收了少量内存时,也会报出OutOfMemoryError,我只遇到过一两次。当使用-XX:+UseParallelGC或-XX:+UseConcMarkSweepGC收集器时,在上述情况下会报错,在HotSpot GC Turning文档上有说明:

The parallel(concurrent) collector will throwan OutOfMemoryError if too much time is being spent in garbage collection: ifmore than 98% of the total time is spent in garbage collection and less than 2%of the heap is recovered, an OutOfMemoryError will be thrown.

对这个问题,一是需要进行GC turning,二是需要优化程序逻辑。

7.java.lang.StackOverflowError

1)原因:这也内存溢出错误的一种,即线程栈的溢出,要么是方法调用层次过多(比如存在无限递归调用),要么是线程栈太小。

2)解决:优化程序设计,减少方法调用层次;调整-Xss参数增加线程栈大小。

-Xss 为jvm启动的每个线程分配的内存大小,默认JDK1.4中是256K,JDK1.5+中是1M

转载于:https://my.oschina.net/huyuBlog/blog/1788473

JVM-XX:NewRatio 、-XX:SurvivorRatio 参数的含义相关推荐

  1. 【JVM】JVM参数性能调优 -Xms -Xmx -Xmn -XX:NewRatio -XX:SurvivorRatio

    原文链接: http://unixboy.iteye.com/blog/174173/ 上图来自:https://blog.csdn.net/jakeswang/article/details/105 ...

  2. 深入理解JVM(三)——配置参数

    2019独角兽企业重金招聘Python工程师标准>>> JVM配置参数分为三类参数: 1.跟踪参数 2.堆分配参数 3.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以 ...

  3. 第9课:jvm的gc时候核心参数详解:-XX:NewRatio、-XX:SurvivorRatio、-XX:NewSize、-XX:MaxNewSize

    内容: 1.-XX:NewRatio     2.-XX:SurvivorRatio     3.-XX:NewSize和-XX:MaxNewSize 一.JVM内存结构图 二.参数详解 1.-xx: ...

  4. JVM底层原理之标配参数、X和XX参数

    一.JVM的参数类型 (1)标配参数(以-开头)    java -version java -help java -showversion 在JDK各个版本之间稳定,很少有大的变化.   [标准VM ...

  5. Java8 官方jvm 标准参考 -XX 配置参数详细信息

    原文地址 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 概要 java [ 选项 ] 类名 [ args ] ...

  6. JVM调优之参数配置: -Xms -Xmx -Xmn -XX:+PrintGCDetails -XX:UseSerialGC -XX:SurvivorRadio -XX:NewRadio

    JVM提供了诸多的参数进行JVM各个方面内存大小的设置,为Java应用进行优化提供了诸多的工具,本文将会详细分析各个参数的功能与使用. 1.常见参数说明: -Xms: //堆内存初始化大小 -Xmx: ...

  7. 35.JVM 参数(JVM中的各种参数及含义、收集器相关、PrintGC等各种辅助参数)

    35.JVM 参数 说下下面jvm参数含义: -server -Xms512m -Xmx512m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m - ...

  8. JVM 参数及含义(适用于 JDK7及之前)

    文章目录 1.JVM参数的含义 1.1.JDK7版本的主要参数 1.2.JDK8版本的重要特有参数 2.并行收集器( ParallelGC )相关参数 3.CMS相关参数 4.辅助信息 5.常见配置汇 ...

  9. tomcat 启动参数 Xms, Xmx, XX:MaxNewSize, XX:PermSize, -XX:MaxPermSize, Djava.awt.headless

    在 tomcat/bin/catalina.sh 的 第一行#!/bin/sh 下添加 JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSiz ...

最新文章

  1. hbase 数据插入指定rowkey_「HBase大爆炸」HBase之常用Shell命令
  2. 重磅!Google推出了Python最牛X的编辑器......
  3. 人工智能预测AI系统的“心灵”与“行为”
  4. 客户端发送消息时,源码运行的大致流程
  5. ActiveMQ(为什么要使用消息中间件,JMS传输模型)
  6. Spring Boot-@Conditional注解以及衍生注解@ConditionalOnBean
  7. 等式变换java解法
  8. 教育部成立校外教育培训监管司 K12迎最强监管 教育中概股再跳水
  9. C#入门经典.第6版 源代码下载 百度云盘下载
  10. 怎么把kux格式转换成mp4?完美转换优酷kux格式
  11. 液压传动与气动技术【2】
  12. Chrome浏览器整个网页截图
  13. 08-20210305在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统)
  14. 永恒之蓝勒索漏洞复现
  15. 虚拟机与宿主机网络配置——可互通可上网
  16. R项目:使用R分析人力资源数据
  17. 用计算机唱歌 丑八怪乐谱,得力计算器乐谱丑八怪 | 手游网游页游攻略大全
  18. vue 使用高德地图标记坐标,去除高德水印logo
  19. 白光干涉衍射实验的计算机仿真,白光干涉_衍射实验的计算机仿真_蓝海江
  20. 什么是舆情监测系统,如何选择舆情监测系统?

热门文章

  1. adams优化设计移动副_副车架多学科优化及轻量化优化设计
  2. python列表转字节_Python3中内置类型bytes和str用法及byte和string之间各种编码转换,python--列表,元组,字符串互相转换...
  3. 本科生出来做机器学习,数据挖掘的工作会比研究生差很多吗?
  4. Software Craftsmanship可以做些什麼?
  5. 数据结构:二叉树层序遍历和判断是否为完全二叉树
  6. java邮箱验证正则表达式_LeetCode 力扣官方题解 | 468.验证 IP 地址
  7. C语言:人物查询系统(结构体数组的基本使用)
  8. 自助报表到底是什么?
  9. 用CMP(云管理平台)统一管理各类云平台环境
  10. 学习Android开发是否有前途?