当前位置:首页 > 内存 > 正文

jvm设置堆内存参数

  • 内存
  • 2024-05-15 10:42:14
  • 1035

一、如何设置Java虚拟机JVM启动内存参数

Tomcat默认的Java虚拟机的JVM启动内存参数只有64MB或128MB左右,这个值非常小,与当今服务器强大的内存使用量相去甚远,所以需要设置Java虚拟机的JVM启动内存参数虚拟机。具体设置方法为:

Tomcat修改TOMCAT_HOME/bin/,添加到[echoUsingCATALINA_BASE:
"%CATALINA_BASE%"]中,例如:

setJAVA_OPTS=-server-Xms1536m-Xmx1536m或JAVA_OPTS="-server-Xms1536m
-Xmx1536m",

不能添加-server模式参数,它会变成

setJAVA_OPTS=-Xms1536m-Xmx1536m或JAVA_OPTS="-Xms1536m-Xmx1536m",

1536m只是一个示例。可以在DOS命令窗口中测试可以使用多少Java虚拟机内存,查看JDK/JRE/JVM版本号就表示可以使用命令中指定的Java虚拟机内存,比如执行

Java-Xmx1280m-版本;

Java-Xmx1408m-版本;

Java-Xmx1536m-版本;

Java-Xmx1664m-版本;

>

Java-Xmx2048m-version;

例如在DOS命令窗口中执行java-Xmx1024m
-version,显示JDK/JRE/JVM版本号,表示最大可使用的Java虚拟机内存为1024MB:

下图中,当Java-Xmx1152m
-version执行后,无法显示JDK/JRE/JVM版本号,说明1152MBJava虚拟机无法使用内存:

等等,但是JVM启动内存参数不能无限增大,因为它们受到物理内存的限制,一般情况下,Windows下可以使用容量为1.6GB左右的Java虚拟机,并且可能会使用一些JDK文件,例如Jrockit最大约为1.9GB。另外,规模较大的还可以使用Linux、AIX微机等。


二、常用JVM参数-Xmn12800m:设置新生代空间初始值、最小值、最大值为12800m
-Xms16g:设置jvm初始分配堆内存大小
-Xmx16g:设置jvm最大分配堆内存大小
-XX:MetaspaceSize=256m:设置jvm元空间初始值大小
-XX:MaxMetaspaceSize=256m:设置jvm元空间最大值
-XX:SurvivorRatio=3:设置Eden空间大小和单个幸存者空间比率。SurvivorSpaceSize=-Xmn/(-XX:SurvivorRatio+2)
-XX:TargetSurvivorRatio=60:survivor占用面积的最大值(百分比),在MinorC之后。
-XX:MaxTenuringThreshold=15:设置新生代对象在存活minerGC时间后进入老年代。
-XX:-UseAdaptiveSizePolicy:将SurvivorSpace设置为固定大小,不会动态调整。
-XX:+UseConcMarkSweepGC:开启cms收集器,会自动启动-XX:+UseParNewGC新生代使用多线程垃圾收集器,老年代使用cms收集器。
-XX:+UseCMSInitiatingOccupancyOnly:设置只有老年代的占用率达到-XX:CMSInitiatingOccupancyFraction设置的值时,才会触发cms的并发垃圾回收周期。
-XX:CMSInitiatingOccupancyFraction=65:当老年代达到65%时,CMS的第一个垃圾回收周期开始。
-Xloggc:metabase_:将垃圾收集统计信息打印到metabase_文件中。组合-XX:+PrintGCDetails和-XX:+PrintGCDateStamps以将输出捕获到日志文件。
-XX:+PrintGCDetails:启用新生代、老年代和永久代垃圾收集统计信息的详细报告。
-XX:+PrintGCDateStamps:在每次垃圾回收时打印时间戳。
-XX:+PrintTenuringDistribution:报告与对象晋升相关的统计信息,包括survivor区域的占用情况,以避免对象过早地从survivor晋升到老年代,HotspotVM计算的晋升阈值,当知识包括最大晋升限制和显示当前幸存者中对象年龄的直方图。
-XX:+HeapDumpOnOutOfMemoryError:oom发生时,生成堵塞堆的转储文件。
-XX:HeapDumpPath=:设置生成堆转储文件的目录路径。
-XX:+DisableExplicitGC:禁用由显式调用()引起的FullGC。
-XX:+UseBiasedLocking:开启偏向锁定功能。