HotSpot 虚拟机常用配置
配置 | 说明 |
---|---|
-Xms1g | 最小堆内存 |
-Xmx4g | 最大堆内存 |
-XX:+UseG1GC | 使用G1垃圾回收器 |
-Xss256k | 每个线程栈大小256k |
-XX:MetaspaceSize=256m | 元数据区大小256M |
-XX:MaxMetaspaceSize=256m | 元数据区最大256M |
-XX:MaxGCPauseMillis=500 | GC最大停顿毫秒数 |
-XX:+DisableExplicitGC | 禁用代码中显式调用GC,System.gc()将会失效 |
-XX:+UnlockExperimentalVMOptions | 解锁实验参数 |
-XX:+UseStringDeduplication | GC的同时做重复字符串消除,只用于G1 |
-XX:InitiatingHeapOccupancyPercent=60 | 启动并发GC周期时的堆内存占用百分比. G1之类的垃圾收集器用它来触发并发GC周期,基于整个堆的使用率,而不只是某一代内存的使用比. 值为 0 则表示”一直执行GC循环”. 默认值为 45. |
-XX:ParallelGCThreads=8 | 设置垃圾收集器在并行阶段使用的线程数,默认值随JVM运行的平台不同而不同. |
-XX:G1MixedGCCountTarget=4 | 设置在标记周期完成之后混合收集的数量,以维持old region(也就是老年代)中,最多有G1MixedGCLiveThresholdPercent的存活对象。默认值为8,混合收集的数量将维持在这个值之内。(JVM build > 23) |
-XX:MaxTenuringThreshold=7 | 年老代的最大临界值(tenuring threshold). 默认值为 15. |
-XX:+UseGCLogFileRotation | 滚动记录GC日志文件 |
-XX:NumberOfGCLogFiles=5 | GC日志文件数量为5个 |
-XX:GCLogFileSize=64M | 单个GC日志文件大小64M |
-Xloggc:/app/data/logs/gc-date +%Y%m%d-%H-%M .log |
GC日志文件存储目录和名称 |
-XX:+PrintGCDetails | 打印GC详情 |
-XX:+PrintGCDateStamps | 打印GC时时间戳 |
-XX:+PrintHeapAtGC | GC时打印堆信息 |
-XX:+PrintAdaptiveSizePolicy | 自适应大小策略,每次 GC 后会重新计算 Eden、From 和 To 区的大小,计算依据是 GC 过程中统计的 GC 时间、吞吐量、内存占用量。 |
-XX:+UseFastAccessorMethods | |
-XX:SoftRefLRUPolicyMSPerMB=0 | softly reachable objects will remain alive for some amount of time after the last time they were referenced. The default value is one second of lifetime per free megabyte in the heap |