背景
jvm参数是所有jvm-based应用的核心配置,对应用的性能有极大影响,配置不当的情况下会甚至会导致应用不能提供服务。
这里简单的讲一下jvm配置与它生效的场景,更专业的jvm各参数含义及推荐配置方案,暂不涉及。
场景
我们的应用代码比较复杂,在debug的时候经常OOM,导致应用启动失败,原因都是jvm参数配置不合理。
可能的原因有以下3种。
1. 堆内存过小
-Xmx2048m # 设置最大jvm参数为2024m,也可以写作 -Xmx2g
2. 堆外内存过小
-XX:MaxPermSize=512m # 设置最大堆外内存,主要是class与元数据,也是gc不能回收的区域
3. 栈溢出
-Xss=1m # 在方法嵌套比较深的情况下,可能会出现
举例
从我个人遇到的场景出发,列举一下各场景下配置与生效范围。
eclipse所在的vm
eclipse安装目录下的eclipse.ini文件, -vmargs下面的行就是配置jvm参数的地方,在开发代码比较复杂的情况下,可以适当调大一些jvm参数,提升eclipse运行效率。
eclipse里Run As Application
配置方法:
eclipse -- preferences -- java -- Installed JREs -- 选择jre -- 点击Edit,具体操作路径见下图。
配置举例:
-Xms512m -Xmx1336m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m
eclipse里Run As JUnit Test
同上
命令行执行java命令
设置环境变量$JAVA_OPTS,一部分奇葩的应用会使用$JAVA_OPTIONS应用,如jetty。。。,所以我现在是配置这2个环境变量
配置举例:
# ~/.bashrc文件
export JAVA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m"
export JAVA_OPTIONS=$JAVA_OPTS
export MAVEN_OPTS=$JAVA_OPTS
命令行执行maven命令
设置环境变量$MAVEN_OPTS
maven test
如果在配置maven-surefire-plugin的时候指定了jvm参数,那么所有环境变量都不会生效,因此执行mvn test的时候,需要额外关注pom.xml中对surefire的配置。
例如,这个插件配置就指定了jvm参数,那么这个工程在执行mvn test时,就不受$MAVEN_OPTS环境变量的影响。如果要修改jvm参数,也只能在pom.xml文件中修改。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-XX:MaxPermSize=512m -Xmx2500m</argLine>
</configuration>
</plugin>
</plugins>
</build>
- 大小: 289.2 KB
分享到:
相关推荐
jvm 配置jvm参数 配置jvm参数
JVM参数设置,提供java虚拟机运行时的参数设置
如何配置jvm参数,并且调优,适合各路开发者,
常用jvm参数都在这张图中,参考起来方便,是国外大神整理的
JVM参数使用说明
IBM JVM参数选项 虚拟机参数
(中英文)JVM 参数详解,用心整理成Excel文档。包含所有近100条JVM参数的详细说明及设置方法,中英文对照,极方便阅读。转载请标明我这的源地址:http://download.csdn.net/download/xiucaiyao/10257573
常用的JVM参数,适合于线上关键业务系统,通用参数设置经验
其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 本文...
jvm 参数调优实践,有代码可供参考,详细调优比较!
1、JVM参数推荐 2、Java运行时数据区 3、JVM内存模型 4、堆的内存划分 5、垃圾回收(GC) 6、JVM参数汇总
在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh 添加:JAVA_OPTS='-Xms512m -Xmx1024m' 要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。 -Xms:初始值 -Xmx:最大值 ...
linux 下jvm基本参数设置 查看linux jvm的设置基本命令
JVM参数调优 及 JAVA相关工具使用
JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化),供大家查阅!!!!!!!!!!!!!!
详述tomcat服务端配置,使并发更加流畅
深入详解JVM内存模型与JVM参数详细配置,感兴趣的小伙伴们可以一块学习下。
可通过设置jvm参数,提高系统性能。内含一些系统原理。
jvm参数优化后,tomcat稳定可靠,附件为通过长时间在线测试的配置参数文件
设置Eclipse的JVM参数