Skip to main content

#4服务器启动参数规范

本参数不具备普遍性,本文档仅为鸡爷云当前环境设计,不代表您的情况。

 

现在使用的模组服参数,如果可能,应尽可能保持-Xms -Xmx大小一致,这将有助于JVM优化内存,从而减少GC导致的停顿

使用高版本JDK需要添加-javaagent:amadeus.unicorn-internal-SNAPSHOT.jar,并安装amadeus.unicorn-internal-SNAPSHOT.jar

/nvme/zulu8.44.0.13-ca-fx-jdk8.0.242-linux_x64/bin/java -Xms10G -Xmx10G -XX:+UseNUMA -XX:+UseLargePagesInMetaspace -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=60 -XX:MaxGCPauseMillis=100 -XX:G1MixedGCLiveThresholdPercent=35 -XX:MetaspaceSize=1G -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=6 -server -Djline.terminal=jline.UnsupportedTerminal -jar forge-1.12.2-14.23.5.2847-universal.jar nogui

 

现在使用的原版服参数,如果可能,应尽可能保持-Xms -Xmx大小一致,这将有助于JVM优化内存,从而减少GC导致的停顿

原生可以使用高版本JDK

/nvme/zulu13.29.11-ca-fx-jdk13.0.2-linux_x64/bin/java -Xms10G -Xmx10G -XX:+UnlockExperimentalVMOptions -XX:+UseNUMA -XX:+UseLargePagesInMetaspace -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=60 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -Djline.terminal=jline.UnsupportedTerminal -jar paper-185.jar nogui

 

理论上这部分参数在分配大于10G内存的服务器上是通用的:  -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+UseLargePagesInMetaspace -XX:+ParallelRefProcEnabled -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=60 -XX:MaxGCPauseMillis=100 -XX:G1MixedGCLiveThresholdPercent=35 -XX:MetaspaceSize=1G -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=6 -server

 

-Djline.terminal=jline.UnsupportedTerminal 是为了让控制台透传到管理面板。

-javaagent:amadeus.unicorn-internal-SNAPSHOT.jar 是为了使 Minecraft Forge 1.12.2 支持 JDK13 甚至 JDK14 使用的。

 

 

 

经过长年累月的实践与检验,我们得出了几个较优化的启动参数。

在不支持amadeus.unicorn-internal的服务器上使用:

java -Xms20G -Xmx20G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+UseLargePagesInMetaspace -XX:+ParallelRefProcEnabled -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=60 -XX:MaxGCPauseMillis=100 -XX:G1MixedGCLiveThresholdPercent=35 -XX:MetaspaceSize=1G -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=6 -server -javaagent:MojangYggdrasil.jar=https://skin.10935336.moe/api/yggdrasil -javaagent:authlib-injector-1.1.26-41a7a47.jar=https://skin.10935336.moe/api/yggdrasil -Djline.terminal=jline.UnsupportedTerminal -jar forge-1.12.2-14.23.5.2847-universal.jar nogui

在支持amadeus.unicorn-internal的服务器上使用:

/nvme/bellsoft-jre-13.0.1/bin/java -Xms20G -Xmx20G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+UseLargePagesInMetaspace -XX:+ParallelRefProcEnabled -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=60 -XX:MaxGCPauseMillis=100 -XX:G1MixedGCLiveThresholdPercent=35 -XX:MetaspaceSize=1G -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=6 -server -javaagent:amadeus.unicorn-internal-SNAPSHOT.jar -javaagent:MojangYggdrasil.jar=https://skin.10935336.moe/api/yggdrasil -javaagent:authlib-injector-1.1.26-41a7a47.jar=https://skin.10935336.moe/api/yggdrasil -Djline.terminal=jline.UnsupportedTerminal -jar forge-1.12.2-14.23.5.2847-universal.jar nogui

在香草使用:

/nvme/bellsoft-jre-13.0.1/bin/java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Djline.terminal=jline.UnsupportedTerminal -jar spigot-1.15.2.jar nogui

 

 

如果可能,应尽可能保持-Xms -Xmx大小一致,这将有助于JVM优化内存,从而减少GC导致的停顿

理论上这部分参数在大于10G内存的服务器上是通用的:  -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+UseLargePagesInMetaspace -XX:+ParallelRefProcEnabled -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=60 -XX:MaxGCPauseMillis=100 -XX:G1MixedGCLiveThresholdPercent=35 -XX:MetaspaceSize=1G -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=6 -server

 

-javaagent:amadeus.unicorn-internal-SNAPSHOT.jar  是为了使 Minecraft Forge 1.12.2 支持 JDK13 甚至 JDK14 使用的。

-javaagent:MojangYggdrasil.jar=https://skin.10935336.moe/api/yggdrasil  是为了使服务器支持外置登录的同时支持正版登录。

-javaagent:authlib-injector-1.1.26-41a7a47.jar=https://skin.10935336.moe/api/yggdrasil  是为了让服务器使用外置登录。

-Djline.terminal=jline.UnsupportedTerminal  是为了让控制台透传到管理面板。