`

JVM参数测试情况

    博客分类:
  • Java
 
阅读更多
JVM包括如下核心组件:
1、堆
2、栈
3、持久代及方法区
4、JIT编译器
5、代码缓存
JVM内存空间分为三部分:Permanent Space、Young Generation、Old Generation。
其中,Young Generation又分为:Eden Space、Survivor0、Survivor1;
这里Total Heap Size是不包括PermSize的,所以实际上java进程占用的内存会比设置-Xms和-Xmx更大。

设置JVM总的内存大小参数 :
-Xms1024m
-Xmx1024m
-XX:PermSize=150m
-XXMaxPermSize=150m

设置Young Generation的大小方法:
(1)-XX:NewSize=300m和-XX:MaxNewSize=300m(Eden Space+Survivor0+Survivor1); 
(2)-Xmn300m(Eden Space+两个Survivor Space的大小);
(3)-XX:NewRatio=2; 
优先级:
(1)最高优先级:  -XX:NewSize=300m和-XX:MaxNewSize=300m
(2)次高优先级:  -Xmn300m  (默认等效效果是:-XX:NewSize==-XX:MaxNewSize==300m)
(3)最低优先级:-XX:NewRatio=2
推荐使用的是-Xmn参数,原因是这个参数很简洁,相当于一次性设定NewSize和MaxNewSIze,而且两者相等。
调整各区比例:
1)-XX:SurvivorRatio=8(Eden/Suvivor)
2)-XX:NewRatio=2(Young/Old)
以下为测试情况:
1、设置JVM参数
-Xms1024m -Xmx1024m -XX:PermSize=150m  -XX:MaxPermSize=150m -XX:NewSize=300m -XX:MaxNewSize=300m -XX:NewRatio=2 -XX:SurvivorRatio=8 
 

 结果:Eden Space + Old Gen = 1024M,  Perm Gen = 150M, Old Gen = (Eden Space)*2 =600M, 小于1024M-Eden Space=724M,则Old Gen=724M
 
2、
-Xms1024m -Xmx1024m -XX:PermSize=256m  -XX:MaxPermSize=256m -XX:NewSize=300m -XX:MaxNewSize=300m -XX:NewRatio=2 -XX:SurvivorRatio=8
 

 结果:Eden Space + Old Gen = 1024M,  Perm Gen = 256M, Old Gen = (Eden Space + S0 + S1)*2

3、
-Xms1024m -Xmx1024m -XX:PermSize=256m  -XX:MaxPermSize=256m -XX:NewSize=384m -XX:MaxNewSize=384m -XX:NewRatio=2 -XX:SurvivorRatio=8
 

  结果:Eden Space + Old Gen = 1024M,  Perm Gen = 256M, Old Gen = (Eden Space + S0 + S1)*2 = 921.25M, OldGen大于 1024M- (Eden Space + S0 + S1)=563,则取1024M-Eden Space = 640M
4、
-Xms1024m -Xmx1024m -XX:PermSize=256m  -XX:MaxPermSize=256m -XX:NewSize=600m -XX:MaxNewSize=600m -XX:NewRatio=2 -XX:SurvivorRatio=8
 

 结果:Eden Space + Old Gen = 1024M,  Perm Gen = 256M, Old Gen =424M,Eden Space = 600M
 
结论是:Xms和Xmx设定的内存大小 = Eden Space + Old Gen, 而Perm Gen 、S0、S1的内存 不受Xmx控制。
结论跟大家情况不符,很是奇怪,本人不才尴尬,不知道为什么会这样子, 哪位大拿不吝指教
 
  • 大小: 37.9 KB
  • 大小: 30.9 KB
  • 大小: 35.6 KB
  • 大小: 32.3 KB
  • 大小: 32.4 KB
分享到:
评论

相关推荐

    jvm优化参数配置

    jvm参数优化后,tomcat稳定可靠,附件为通过长时间在线测试的配置参数文件

    JVM参数调优及Java测试代码

    JVM参数调优及Java测试代码,通过调整虚拟机各种参数并进行测试和监控得到最优配置

    开发测试环境Docker及JVM内存限制部署方案

    该文档描述了开发测试环境中Docker及JVM内存限制部署方案

    JVM参数设置详细说明

    JVM参数设置详细说明、JVM 参数设置详细说明 1: heap size a: -Xmx 指定jvm的最大heap大小,如:-Xmx=2g b: -Xms 指定jvm的最小heap大小,如:-Xms=2g,高并发应用,建议和-Xmx一样,防止因为内存收缩/突然增大带来...

    jvm虚拟机参数调优,tomcat调优

    jvm虚拟机参数调优,tomcat调优,内含代码测试,性能测试讲解

    Roger0101#technology-talk#jvm堆参数调整1

    线上jvm参数调整用了两台线上机做测试,配置一样192.168.16.116(参数未调整)192.168.18.62 (参数调整)发布上线后,beta了一天,对

    jvm如何处理长字符串

    jvm如何处理长字符串?java的classs文件中,constant_utf8_info的长度是u2,也就是说,一个字符串最长是65535个字节,但是,在本机做测试,超过这个长度的字符串也是允许的,原因是什么?

    maven 测试写入JRE参数实例详解

    项目在测试时碰到一个问题,就是JVM加载参数的问题。 web项目本身在注入配置信息的时候,读取的是本地的配置文件,但是配置文件的位置是卸载tomcat 里面配置的JAVA_OPTS里面的。 问题出现了: JAVA_OPTS将变量...

    resin-jvm 调优

    建议这两个参数值设为客户机可用内存的60%(有待测试)。为了在动态生成JNLP时以上两个参数值能够随客户机不同而不同,可靠虑获得客户机系统信息并将这些嵌到首页index.jsp中作为连接请求的参数。 在设置了上述...

    消息中间件 RocketMQ 性能压测工具

    内含多种命令行参数(例如消费位点的调整,消息体大小调整,并发数调整,JVM 参数调优,延迟等级调整等)实现压测的精细化控制。毫不夸张的说,RocketMQ 覆盖的功能基本都能测到。 3 简单易用:我将每个压测场景都...

    大数据测试——精选推荐.pdf

    JVM参数,如何设置最优的jvm参数,heap size、GC机制等等 Map Reduce,我们应该选择什么样的sort、merge等算法? 消息队列,消息队列长度会怎么样?等等 必备的测试环境 必备的测试环境 ⼤数据测试不同

    HBase的性能优化

    HBase的性能优化测试,应各自环境不同参照设置自己的数据库参数

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    / 112 5.2.5 服务器JVM进程崩溃 / 113 5.3 实战:Eclipse运行速度调优 / 114 5.3.1 调优前的程序运行状态 / 114 5.3.2 升级JDK 1.6的性能变化及兼容问题 / 117 5.3.3 编译时间和类加载时间的优化 / 122 5.3.4 ...

    Java虚拟机内存测试和参数调优代码.zip

    java学习:Java虚拟机内存测试和参数调优

    Tomcat内存溢出的三种情况及解决办法分析

    对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcat jvm参数来解决。(-Xms -Xmx -XX:PermSize -XX:MaxPermSize) 最后一种可能需要调整操作系统和tomcat jvm参数同时调整才能达到目的。 第一种...

    weblogic内存配置

    已经测试,在生产环境中配置的,顺便记录下来

    parallel_cuke_jvm:CucumberJVM的配置,允许动态并行测试运行

    这些测试是通过Cucumber-JVM .feature文件控制的。 这个怎么运作 CucumberJVM工作原理的细节不在此处介绍。 有关此类信息,请参见项目的。 该框架通过添加以下内容将多线程添加到混合中: FeatureBuilder.java:在...

    java写webapi源码-cucumber-java-toy:♖演示在Cucumber-JVM中使用JUnit展示SeleniumPageO

    进行参数化测试 引入 WebDriverManager 支持 Travis 可以测试 添加 Travis 测试配置 重构为页面工厂模式 各种测试和代码阅读,以阐明 Cucumber-JVM 的 obj 生命周期 添加 circleCI 在线 CI 和部署测试 自定义注解和...

    测试培训教材

    重用:测试用例设计模块化、参数化 选择测试“Cruise Booking” 在设计步骤界面中选择“调用测试” 查找“Connect”,选择“Connect And Sign-On” 把“调用”的测试步骤调整到第一步 查看需求覆盖率 ...

Global site tag (gtag.js) - Google Analytics