OpenJ9
OpenJ9 是完全重新设计的 JVM,拥有独立的垃圾回收系统,与 HotSpot JVM 的 G1GC、ZGC 等完全不同。
注意
这些参数的主要目的是降低内存占用,而非优化性能
危险
重要兼容性说明
由于 Paper 服务端内置 Spark 性能分析器,而 Spark 与 OpenJ9 不兼容,因此默认情况下不能在 Paper 服务端上使用 OpenJ9。
Paper 兼容性修复
如需在 Paper 及其分支上使用 OpenJ9,需禁用内置 Spark:
方法一:配置文件(推荐)
在 config/paper-global.yml
中设置:
spark:
enabled: false
方法二:启动参数
添加参数:
-Dpaper.preferSparkPlugin=true
注意
禁用 Spark 后无法使用性能分析功能。
基础参数
-XX:+IdleTuningGcOnIdle -XX:+UseAggressiveHeapShrink -XX:-OmitStackTraceInFastThrow -XX:+UseFastAccessorMethods -XX:+OptimizeStringConcat -Xshareclasses:allowClasspaths -Xshareclasses:cacheDir=./cache -Xaot -XX:+UseCompressedOops -XX:ObjectAlignmentInBytes=256 -Xshareclasses -XX:SharedCacheHardLimit=800M -Xtune:virtualized -XX:+TieredCompilation -XX:InitialTenuringThreshold=5 -Dlog4j2.formatMsgNoLookups=true -XX:-DisableExplicitGC
垃圾回收策略
OpenJ9 使用 -Xgcpolicy
参数来指定垃圾回收策略,而不是 HotSpot 的 -XX:+UseG1GC
或 -XX:+UseZGC
。
推荐策略:gencon(默认)
适合大多数 Minecraft 服务器场景,特别是有大量短生命周期对象的事务性应用。
-Xgcpolicy:gencon
提示
对于 Minecraft 服务器,gencon 策略通常是最佳选择,因为它专门针对有大量临时对象的应用进行了优化。