JVM系列之常用参数的查看和设置

JVM常用参数

参数名称含义默认值说明
-Xms初始堆大小,等价于-XX:InitialHeapSize物理内存的1/64默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.
-Xmx最大堆大小,等价于-XX:MaxHeapSize物理内存的1/4默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制
-Xmn

年轻代大小,设置了-Xmn之后

-XX:NewSize和-XX:MaxNewSize都为该数值

默认XX:NewSize为-XX:InitialHeapSize的1/3

XX:MaxNewSize为-XX:MaxHeapSize的1/3

注意:此处的大小是(eden+ 2 survivor space).与jmap -heap中显示的New gen是不同的。
整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.
增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
-Xss每个线程的栈大小1mJDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误。
-XX:PermSize非堆内存初始值物理内存的1/64java8及之后就不支持了,警告如下:Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
-XX:MaxPermSize最大非堆内存的大小物理内存的1/4java8及之后就不支持了,同上
-XX:MetaspaceSize元空间初始大小21m一旦元空间的大小达到初始大小,就会触发Full GC并会卸载没有用的类,然后该值将会向MaxMetaspaceSize扩大一点。如果初始化的高水位线设置过低,会频繁的触发Full GC,高水位线会被多次调整。所以为了避免频繁GC以及调整高水位线,建议将-XX:MetaspaceSize设置为较高的值。
-XX:MaxMetaspaceSize元空间最大大小物理内存的总大小默认情况下,元空间最大的大小是系统内存的大小,元空间一直扩大,虚拟机可能会消耗完所有的可用系统内存。一般不建议修改-XX:MaxMetaspaceSize
-XX:NewRatio老年代(不包含永久区)和新生代(Eden+2*S)的比值2 
-XX:SurvivorRatioEden区和Survivor区的比值8 
-XX:MaxTenuringThreshold设置Survivor区的最大分代年龄15具体参看JVM系列之内存分配和回收策略中对象的衰老过程
-XX:ReservedCodeCacheSize设置代码缓存的大小240m用来存储已编译方法生成的本地代码,如果代码缓存被占满,JVM会打印出一条警告消息,并切换到interpreted-only 模式:JIT编译器被停用,字节码将不再会被编译成机器码。因此,应用程序将继续运行,但运行速度会降低一个数量级,直到有人注意到这个问题。

JVM参数查看

1、查看所有参数信息 

jinfo -flags pid

 

jmap -heap pid

 

2、查看单个参数信息

jinfo -flag MetaspaceSize pid

 

JVM参数设置

1、IDEA中参看IDEA中VM options参数设置和说明

2、Linux下修改TomcatJVM内存大小

要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前。

# OS specific support.  $var _must_ be set to either true or false.
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" 
cygwin=false

3、windows下修改Tomcat JVM内存大小

解压版本的Tomcat , 要通过startup.bat启动tomcat才能加载配置,添加在tomcat 的bin下catalina.bat 里

#rem Guess CATALINA_HOME if not defined
#set CURRENT_DIR=%cd%后面添加
set JAVA_OPTS=-Xms1024m -Xmx1024m -Xmn=256m -XX:PermSize=128M -XX:MaxPermSize=128m -Djava.awt.headless=true  -XX:+UseSerialGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:D:\log\jvm\gc.log

安装版的Tomcat ,没有catalina.bat 
可以在/bin/tomcat6w.exe里修改就可以了 。

4、直接通过jar包启动

java -Xms512m -Xmx1024m -jar test.jar --spring.config.location=application.properties

 

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值