JVM 参数大全
内存参数
-Xmx3550m:设置`JVM`最大堆内存为`3550M`
-Xms3550m:设置`JVM`初始堆内存 为`3550M`。此值可以设置与`-Xmx`相同,以避免每次垃圾回收完成后`JVM`重新分配内存。
-Xss128k: 设置每个线程的栈 大小。
-Xmn2g:设置堆内存年轻代 大小为`2G`。整个堆内存大小 = 年轻代大小 + 年老代大小 + 持久代大小 。持久代一般固定大小为`64m`,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,`Sun`官方推荐配置为整个堆的`3/8`。
-XX:PermSize=256M:设置堆内存持久代 初始值为`256M`。
-XX:MaxNewSize=size:新生成的对象能占用内存的最大值。
-XX:MaxPermSize=512M:设置持久代最大值为`512M`。
-XX:NewRatio=4:设置堆内存年轻代(包括Eden和两个Survivor区)与堆内存年老代的比值(除去持久代) 。设置为4,则年轻代所占与年老代所占的比值为1:4。
-XX:SurvivorRatio=4: 设置堆内存年轻代中Eden区与Survivor区大小的比值 。设置为4,则两个Survivor区(JVM堆内存年轻代中默认有2个Survivor区)与一个Eden区的比值为2:4,一个Survivor区占 整个年轻代的1/6。
垃圾收集器配置
// 配置使用Serial单线程垃圾收集器,虚拟机运行在Client模式下的默认值
// 新生代使用Serial 老年代则使用SerialOld
-XX:+UseSerialGC
// 配置使用ParNew垃圾收集器
// 新生代使用ParNew 老年代则使用Serial Old
-XX:+UseParNewGC
// 配置使用Parallel Scavenge垃圾收集器,虚拟机运行在Server模式下的默认值
// 新生代使用Parallel Scavenge 老年代使用Parallel Old收集器
-XX:+UseParallelGC
// 配置使用Parallel Old垃圾收集器
// 新生代使用Parallel Scavenge 老年代使用Parallel Old收集器
-XX:+UseParallelOldGC
// 配置使用CMS垃圾收集器
// 新生代使用ParNew 老年代使用CMS+Serial Old收集器
-XX:+UseConcMarkSweepGC
// 配置使用G1垃圾收集器
-XX:+UseG1GC
GC日志配置
// 设置日志目录和日志名称
-Xloggc:/data/logs/gc-%t.log
// 开启滚动生成日志 默认关闭
-XX:+UseGCLogFileRotation
// 滚动GC日志文件数,默认0不滚动,保留最多5个日志文件
-XX:NumberOfGCLogFiles=5
// GC文件滚动大小,需开启UseGCLogFileRotation,每个文件最大为20MB
-XX:GCLogFileSize=20M
// 在进行GC的前后打印出堆的信息
-XX:+PrintHeapAtGC
// 打印新生代晋升详情
-XX:+PrintTenuringDistribution
// 打印字符串常量池堆信息
-XX:+PrintStringTableStatistics
// 打印GC信息
-verbose:gc
// 打印GC详细信息
-XX:+PrintGCDetails
// 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCTimeStamps
// 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintGCDateStamps
// 打印当前JVM参数信息 建议在每个程序中都添加上
-XX:+PrintCommandLineFlags
// 产生GC的原因(默认开启)
-XX:+PrintGCCause
dump 日志参数配置
// 默认关闭
// 可以通过jinfo -flag [+|-]HeapDumpOnOutOfMemoryError <pid> 或 jinfo -flag HeapDumpOnOutOfMemoryError=<value> <pid> 来动态开启或设置值
-XX:+HeapDumpOnOutOfMemoryError
// 设置文件存储路径
// 当HeapDumpOnOutOfMemoryError开启的时候,dump文件的保存路径,默认为工作目录下的,可以通过配置指定保存路径
-XX:HeapDumpPath=/data/dump/jvm.hprof
发生Full GC时生成dump文件
- 不推荐开启会增加整体停顿时间
// 在Full GC前dump
-XX:+HeapDumpBeforeFullGC
// 在Full GC后dump
-XX:+HeapDumpAfterFullGC
// 设置Dump保存的路径
-XX:HeapDumpPath=/data/dump/jvm.hprof
在IDEA中配置JVM参数