`

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
分享到:
评论

相关推荐

    tomcat6.0 修改启动内存设置 java jvm参数配置

    ### Tomcat 6.0 修改启动内存设置及 Java JVM 参数配置详解 #### 一、背景与目的 ...需要注意的是,实际配置时应根据应用程序的具体需求来进行调整,并结合实际情况测试不同的内存配置方案,以找到最优解。

    JVM参数使用说明

    ### JVM参数详解 #### Heap Size相关参数 - **-Xmx**: 指定JVM的最大堆(heap)大小。例如,`-Xmx2g` 表示最大堆大小为2GB。这对于控制应用程序使用的最大内存非常重要,以避免过度消耗服务器资源。 - **-Xms**: ...

    JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化).pdf

    本篇文件内容主要介绍了JVM优化的第三部分,重点围绕Tomcat参数调优、JVM参数调优、JVM字节码优化以及代码优化等几个方面。下面是针对这些知识点的详细解释: 1. Tomcat参数调优 在Tomcat参数调优部分,首先介绍了...

    Java 6 JVM 参数选项大全

    特别是在Java、J2EE等大型应用中,通过合理设置JVM参数可以极大提升系统的整体性能与稳定性。 #### JVM 非标准参数的重要性 JVM非标准参数主要指那些用于优化JVM内部行为的配置项,这些参数通常在开发阶段被忽略或...

    JVM参数调优及Java测试代码

    本主题将深入探讨JVM参数调优的重要性、原理以及如何进行测试和监控,以便找到最优配置。我们将不涉及具体代码,而是关注理论知识和实践策略。 首先,理解JVM的主要组成部分至关重要。JVM分为堆内存(Heap)、方法...

    jvm启动参数大全

    **JVM启动参数大全** Java虚拟机(JVM)是Java程序运行的基础,它负责解析字节码并执行Java代码。在开发和调优Java应用时,了解和使用JVM启动参数至关重要。这些参数可以调整JVM的行为,优化内存分配、垃圾收集、...

    Java 6 JVM参数选项大全

    在调整JVM参数时,需要谨慎操作,因为不同的设置可能对应用性能、内存使用和稳定性产生深远影响。建议根据具体应用的需求和负载,通过监控和测试来确定最佳的参数组合。同时,由于Java版本的更新,一些选项在不同...

    jvm参数调优-jvmSample.zip

    在"jvmSample-master"项目中,我们可以通过模拟不同的负载情况来测试不同JVM参数设置下的性能表现。例如,调整-Xms和-Xmx参数,观察程序启动速度和运行稳定性;使用-XX:NewRatio和-XX:SurvivorRatio调整年轻代和老年...

    jvm优化参数配置

    以上只是JVM参数优化的一部分内容,实际操作中还需要根据应用的特性和负载情况进行调整。在`catalina.sh`中,这些参数通常会通过`JAVA_OPTS`环境变量设置。`conf`目录下的配置文件可能包含服务器级别的配置,如`...

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

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

    如何配置jvm参数,调优

    ### 如何配置JVM参数,实现高效调优 在IT行业,Java虚拟机(JVM)作为执行Java程序的核心环境,其性能优化是确保应用程序稳定、高效运行的关键。本文将深入探讨如何合理配置JVM参数,以达到最优的系统表现。 #### ...

    JVM参数参数调优共11页.pdf.zip

    **JVM参数调优详解** Java虚拟机(JVM)是Java程序运行的基础,它负责解析字节码并执行程序。然而,为了实现最佳性能,开发者需要对JVM进行调优,确保应用程序能够高效、稳定地运行。"JVM参数参数调优共11页.pdf....

    Tomcat 调优及 JVM 参数优化

    为了确保这些应用高效、稳定地运行,调优Tomcat和JVM参数至关重要。这篇文章将深入探讨Tomcat调优与JVM参数优化的各个方面,帮助你提升服务器性能。 首先,我们来了解一下Tomcat调优的基础知识。Tomcat调优主要包括...

    img JVM调优实战.pdf

    测试环境准备涉及搭建测试平台和配置JVM参数。执行初步性能测试后,需要根据测试结果选择调优方案,并进行进一步的测试来验证调优效果。 性能问题通常表现为延迟增加、吞吐量下降或内存溢出(如“outofmemory错误”...

    JVM调优测试-jvmDemo.zip

    3. **JVM参数设置**:通过设置JVM启动参数,可以调整内存大小、垃圾收集策略等。例如,`-Xms`和`-Xmx`用于设置堆内存的初始大小和最大大小,`-XX:NewRatio`控制新生代与老年代的比例,`-XX:SurvivorRatio`定义Eden区...

    jvm参数调优-jvm.zip

    JVM参数调优是提升Java应用程序性能的关键环节,尤其是在高并发、大数据量的环境中,合适的JVM配置可以显著改善系统的响应速度和稳定性。 在进行JVM调优时,我们主要关注以下几个核心方面: 1. **内存设置**:JVM...

    Jvm 优化手册

    6. **-enableassertions/-disableassertions**:控制JVM的断言处理机制,通过开启或关闭特定包或类的断言,可以在不影响整体性能的情况下,进行更细粒度的代码质量检查和调试,提高了软件开发的健壮性和测试的效率。...

    jvm调优测试仓库-jvm-monitor.zip

    "jvm-monitor"是一个用于JVM性能监控的工具,它可以帮助开发者实时查看JVM的各种指标,如CPU使用率、内存使用情况、线程状态、垃圾收集器活动等。通过这些数据,我们可以分析出可能存在的性能瓶颈。 1. JVisualVM:...

Global site tag (gtag.js) - Google Analytics