A:JVM启动参数共分为三类:
其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
其二是非标准参数(-X),指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,并不保证所有jvm实现都满足,所以为了提高性能,往往需要调整这些参数,以求系统达到最佳性能。另外这些参数不保证向后兼容,也即是说“如有变更,恕不在后续版本的JDK通知”(这是官网上的原话);
其三是非Stable参数(-XX),这类参数在jvm中是不稳定的,不适合日常使用的,后续也是可能会在没有通知的情况下就直接取消了,需要慎重使用。
B:而JVM 内存又可分为三个主要的域 :
新域、旧域以及永久域。JVM生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便进入旧域。而在永久域中是用来存储JVM自己的反射对象的,如class和method对象,而且GC(Garbage Collection)不会在主程序运行期对永久域进行清理。其中新域和旧域属于堆,永久域是一个独立域并且不认为是堆的一部分。
C:各主要参数的作用如下 :
-Xms:设置jvm内存的初始大小
-Xmx:设置jvm内存的最大值
-Xmn:设置新域的大小(这个似乎只对 jdk1.4来说是有效的,后来就废弃了)
-Xss:设置每个线程的堆栈大小(也就是说,在相同物理内存下,减小这个值能生成更多的线程)
-XX:NewRatio :设置新域与旧域之比,如-XX:NewRatio = 4就表示新域与旧域之比为1:4
-XX:NewSize:设置新域的初始值
-XX:MaxNewSize :设置新域的最大值
-XX:PermSize:设置永久域的初始值
-XX:MaxPermSize:设置永久域的最大值
-XX:SurvivorRatio=n:设置新域中Eden区与两个Survivor区的比值。(Eden区主要是用来存放新生的对象,而两个 Survivor区则用来存放每次垃圾回收后存活下来的对象)
D:常见的错误 :
java.lang.OutOfMemoryError相信很多开发人员都用到过,这个主要就是JVM参数没有配好引起的,但是这种错误又分两种:java.lang.OutOfMemoryError: Java heap space和java.lang.OutOfMemoryError: PermGen space,其中前者是有关堆内存的内存溢出,可以同过配置-Xms和-Xmx参数来设置,而后者是有关永久域的内存溢出,可以通过配置 -XX:MaxPermSize来设置。
下面是个例子,请根据实际情况进行修改,修改run.conf文件中的如下内容:
JAVA_OPTS="-Xms256m -Xmx2048m -XX:NewSize=256m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -Djboss.platform.mbeanserver"
分享到:
相关推荐
Eclipse通过调整JVM参数来控制JVM的行为,进而影响Eclipse自身的运行性能。合理的JVM参数配置可以显著提升Eclipse的启动速度和运行效率。 #### 三、关键JVM参数解析 - **-Xms128m**:设置JVM的初始堆内存大小为128...
### 常用JVM配置参数详解 #### 一、概述 Java虚拟机(JVM)是运行Java程序的核心环境,其性能的优劣直接影响到Java应用程序的执行效率...在实际应用中,建议根据具体的应用场景灵活调整JVM参数,以达到最佳的运行效果。
完全垃圾收集应在3-5秒内完成,如果超过这个时间,可能需要调整JVM参数或考虑使用不同的垃圾收集器策略。 最后,为了提高效率,推荐缩小最大内存和最小内存之间的差距,以减少内存碎片并提高利用率。同时,增加...
在调整JVM参数时,需要谨慎操作,因为不同的设置可能对应用性能、内存使用和稳定性产生深远影响。建议根据具体应用的需求和负载,通过监控和测试来确定最佳的参数组合。同时,由于Java版本的更新,一些选项在不同...
调整JVM参数可以改善应用程序的启动时间、响应速度和内存消耗。 2. **类加载机制**:JVM采用双亲委派模型加载类,理解这个机制有助于解决类冲突和类加载问题。 3. **JVM内存结构**:理解堆(Heap)、方法区...
在调整 Tomcat 的内存设置之前,我们需要了解一些基本的 JVM 内存参数: 1. **`-Xms`**:设置 JVM 启动时的初始堆内存大小。 2. **`-Xmx`**:设置 JVM 运行时的最大堆内存大小。 3. **`-Xmn`**:设置年轻代 (Young ...
Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及优化代码。JVM参数设置对于调整应用程序的性能、...因此,在调整JVM参数时,需要结合实际情况进行试验和监控,以找到最适合的配置。
4. **调整参数**:根据分析结果调整JVM参数,如增加内存、改变GC策略等。 5. **验证效果**:再次运行应用并收集数据,比较调优前后的差异,确保优化效果。 6. **持续监控**:调优并非一次性任务,应持续监控应用性能...
3. **调整参数**:根据瓶颈,有针对性地调整JVM参数。 4. **测试验证**:通过压力测试或模拟真实负载,检查调优效果。 5. **持续监控**:调优不是一次性工作,需要持续监控,确保优化效果稳定。 总的来说,JVM参数...
通过深入了解和调整JVM参数,我们可以提升Java应用的性能,减少垃圾收集的开销,避免内存溢出等问题,从而确保应用程序稳定高效地运行。在阅读《Java 6 JVM参数选项大全(中文版)》这份文档时,可以找到更多具体的...
### JVM参数设置详解 在Java应用开发与维护过程中,JVM(Java虚拟机)的配置至关重要,它直接影响到应用程序的性能表现与稳定性。本文将基于提供的文件内容,深入解析Linux环境下JVM的基本参数设置方法及原理。 ##...
只有在排查过程中发现存在性能瓶颈时,才考虑调整JVM参数。这一步骤可以避免盲目调整参数而带来的不确定风险。 接着,手册详细列举了JVM的三大类参数,并对它们的功能和用法进行了解释: 1. 标准参数:以“-”开头...
Java虚拟机(JVM)是Java程序运行的...通过持续监控和调整JVM参数,可以确保应用程序的高效稳定运行。在实际操作中,建议使用`java -XX:+PrintFlagsFinal -version`命令来查看特定JVM版本支持的所有参数及其默认值。
总结,掌握JVM工具的使用、合理调整JVM参数以及精通调试技巧是优化Java应用程序的关键。开发者应根据实际应用场景,灵活运用这些工具和方法,持续监控、分析和优化,以提高系统的稳定性和性能。
2. **调整JVM参数**:根据应用程序的实际需求调整JVM参数。 - 例如:可以将初始堆内存大小设为256MB,最大堆内存大小设为512MB。 - 将永久代的初始大小设为128MB,最大大小设为256MB。 3. **测试与验证**:完成...
通过这些监控结果,我们可以定位性能瓶颈,然后调整JVM参数或应用程序代码来解决问题。 最后,文档中提到的实战篇会介绍具体的调优步骤,包括测试脚本的录制、测试场景的定义、调优方案的选择、JVM监控图的查看以及...
### 关键业务系统JVM参数推荐 #### 一、引言 在关键业务系统中,除了追求高吞吐量和低延迟之外,系统的稳定性和问题排查的便捷性同样至关重要。因此,选择合适的JVM参数变得尤为重要。本文将详细介绍一些常用的JVM...