From 92e66bf34458a6dd075a0a957d1c378167bba188 Mon Sep 17 00:00:00 2001 From: lilingfengdev Date: Sun, 15 Sep 2024 13:52:44 +0800 Subject: [PATCH] fix some --- .../maintenance/optimize/jvm/dragonwell11.md | 2 +- .../process/maintenance/optimize/jvm/graal.md | 8 +------ .../process/maintenance/optimize/jvm/jvm.md | 24 ++++++++++++++----- .../maintenance/optimize/jvm/openj9.md | 2 ++ .../process/maintenance/optimize/jvm/zing.md | 17 ++++++++----- .../optimize/performance-analysis.md | 8 ++++++- .../optimize/storage-space-optimization.md | 14 +++++------ 7 files changed, 47 insertions(+), 28 deletions(-) diff --git a/docs-java/process/maintenance/optimize/jvm/dragonwell11.md b/docs-java/process/maintenance/optimize/jvm/dragonwell11.md index 65e4bf673..3efe92683 100644 --- a/docs-java/process/maintenance/optimize/jvm/dragonwell11.md +++ b/docs-java/process/maintenance/optimize/jvm/dragonwell11.md @@ -18,7 +18,7 @@ slug: /optimize/jvm/dragonwell ## ZGC -Dragonwell11 的 ZGC 不同于 OpenJDK11 的 ZGC,Dragonwell 通过移植 OpenJDK 15+的 ZGC补丁,使得Dragonwell的ZGC可以投入生产环境 +Dragonwell 11 的 ZGC 不同于 OpenJDK11 的 ZGC,Dragonwell 通过移植 OpenJDK 15+的 ZGC补丁,使得Dragonwell的ZGC可以投入生产环境 添加参数 `-XX:+UseZGC -XX:AllocatePrefetchStyle=1`以启用 diff --git a/docs-java/process/maintenance/optimize/jvm/graal.md b/docs-java/process/maintenance/optimize/jvm/graal.md index 43d8831ae..c01b837e6 100644 --- a/docs-java/process/maintenance/optimize/jvm/graal.md +++ b/docs-java/process/maintenance/optimize/jvm/graal.md @@ -14,10 +14,6 @@ slug: /optimize/jvm/graalvm -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:AllocatePrefetchStyle=3 -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:+EagerJVMCI -Dgraal.TuneInlinerExploration=1 ``` -## GraalVM Mod兼容 - -GraalVM EE 22.3.0 修复了所有已知的 Minecraft 错误 - ## G1GC ```shell @@ -36,6 +32,4 @@ GraalVM EE 22.3.0 修复了所有已知的 Minecraft 错误 更激进的内联,在 Graal 中通过`-Dgraal.BaseTargetSpending=160`(默认为 120)和 OpenJDK 中的其他一些标志。具有较大缓存的 CPU 可能会从中受益 -`-Dgraal.OptWriteMotion=true`和`-Dgraal.WriteableCodeCache=true` ,看起来不稳定,但在 GraalVM 22.3.0 中可能更稳定,显然,针对Mod - -~~神无需优化~~ \ No newline at end of file +`-Dgraal.OptWriteMotion=true`和`-Dgraal.WriteableCodeCache=true` ,看起来不稳定,但在 GraalVM 22.3.0 中可能更稳定 diff --git a/docs-java/process/maintenance/optimize/jvm/jvm.md b/docs-java/process/maintenance/optimize/jvm/jvm.md index 9b8fb1ae7..f92fd4aef 100644 --- a/docs-java/process/maintenance/optimize/jvm/jvm.md +++ b/docs-java/process/maintenance/optimize/jvm/jvm.md @@ -45,6 +45,18 @@ flowchart TD ::: +:::tip 兼容性 + +根据我们的测试,GraalVM,Dragonwell,Zulu 目前都没有被报告过不兼容 + +Zing 与 LuckPerms 以及一些特殊插件会有一点不兼容 + +OpenJ9 虽然内存占用很低,但是性能很差,并且与很多插件有不兼容(比如 Spark) + +GraalVM 在 22.3.0 修复了所有已知的 Minecraft 错误 + +::: + ## 垃圾回收器 经过我们的多次测试,G1GC和ZGC 最适合MC服务器(还有一个 Zing C4) @@ -54,13 +66,13 @@ flowchart TD ```mermaid flowchart TD A[选择] - A --> 机器配置足够,起步4h8g,推荐8h8g + A --> B[机器配置足够,起步4h8g,推荐8h8g] A --> 机器配置不达标 - 机器配置足够,起步4h8g,推荐8h8g --> Java21,或者Dragonwell11 - 机器配置足够,起步4h8g,推荐8h8g --> 其他版本 - Java21,或者Dragonwell11 --> ZGC - 其他版本 --> G1GC - 机器配置不达标 --> G1GC + B --> C[Java 21+,或Dragonwell 11] + B --> 其他 + C --> ZGC + 其他 --> G1 + 机器配置不达标 --> G1 ``` ZGC 的无停顿可以给玩家带来更好的体验,并且更充分的利用多核 diff --git a/docs-java/process/maintenance/optimize/jvm/openj9.md b/docs-java/process/maintenance/optimize/jvm/openj9.md index 63db716eb..9a7c70d26 100644 --- a/docs-java/process/maintenance/optimize/jvm/openj9.md +++ b/docs-java/process/maintenance/optimize/jvm/openj9.md @@ -8,6 +8,8 @@ slug: /optimize/jvm/openj9 这些参数只适合 OpenJ9 +**这些参数的主要目的是降低内存占用,而非优化性能** + ## 基础 ```shell diff --git a/docs-java/process/maintenance/optimize/jvm/zing.md b/docs-java/process/maintenance/optimize/jvm/zing.md index 3e0c65fdd..3b832565f 100644 --- a/docs-java/process/maintenance/optimize/jvm/zing.md +++ b/docs-java/process/maintenance/optimize/jvm/zing.md @@ -6,10 +6,18 @@ slug: /optimize/jvm/zing # Azul Zing -~~神无需优化~~ - 通用内容的参数可以使用(比如大页),但不要自行指定GC,或其他优化参数 +## 一步到位 + +``` +-XX:ProfileLogIn=readynow -XX:ProfileLogOut=readynow -XX:+FalconUseCompileStashing -XX:+CompactStrings +``` + +勇者加上`-XX:FalconOptimizationLevel=3` + +安装了 ZST 加上`-XX:+UseZST` + ## ReadyNow 你大概已经注意到了,Zing的预热期很长,ReadyNow就是来解决这个问题的 @@ -36,7 +44,7 @@ C4 是 Zing 中唯一的垃圾收集器,取代了 OpenJDK 中可用的其他垃 ## 更高级别的 Falcon 优化 -使用选项`-XX:FalconOptimizationLevel=3`可以获得更高级别的优化,但会出现兼容性问题 +使用选项`-XX:FalconOptimizationLevel=3`可以获得更高级别的优化,但会出现更多兼容性问题 ## Zing System Tool @@ -56,6 +64,3 @@ C4 是 Zing 中唯一的垃圾收集器,取代了 OpenJDK 中可用的其他垃 [DEB](https://cdn.azul.com/zing-zvm/ZVM24.07.0.0/zing24.07.0.0-3-jdk21.0.3.0.101-linux_amd64.deb) -## 一些特殊情况 - -zing和mariadb不要一起用 diff --git a/docs-java/process/maintenance/optimize/performance-analysis.md b/docs-java/process/maintenance/optimize/performance-analysis.md index f15b4344c..45ac80b52 100644 --- a/docs-java/process/maintenance/optimize/performance-analysis.md +++ b/docs-java/process/maintenance/optimize/performance-analysis.md @@ -42,7 +42,7 @@ Spark是一个Minecraft的性能分析器,支持广泛(如 Bukkit,BungeeCord,Vel 1.12.2 和以下混合服优先使用 mod 版本,放入 mods 文件夹。 -对于 Purpur Fork 服务器,默认自带 Spark,无需单独下载。 +对于 Purpur Fork 服务器或 Paper 1.21+,默认自带 Spark,无需单独下载。 #### /spark profiler @@ -62,6 +62,12 @@ Spark是一个Minecraft的性能分析器,支持广泛(如 Bukkit,BungeeCord,Vel 这是主要的指令,为了更多的功能,更精准的分析等可以在后面加上参数.具体请查看 [profiler 指令使用方法](https://snowcutieowo.github.io/spark/#/spark.command-usage) +:::tip + +Spark 中内存占用并非平均内存占用,而是**瞬间内存占用**,所以有些时候会出现 Spark 上显示内存占用小实际很大的情况 + +::: + #### /spark health 子命令 health 会产生一份服务器的健康报告,其中包含 TPS、CPU、内存和硬盘的使用情况。 diff --git a/docs-java/process/maintenance/optimize/storage-space-optimization.md b/docs-java/process/maintenance/optimize/storage-space-optimization.md index 92b9b25ef..c197f4927 100644 --- a/docs-java/process/maintenance/optimize/storage-space-optimization.md +++ b/docs-java/process/maintenance/optimize/storage-space-optimization.md @@ -80,13 +80,13 @@ ServerBackup 一款备份插件,会由于找不到mca文件报错。 感谢 HaHaWTH 提供的测试结果,测试内容为使用 Chunky 加载半径 1000 格的方块并保存,测试核心为 Leaf ,实际结果可能与测试结果有出入 -| 世界 | ANVIL(原版格式) | Linear(压缩比为一) | Linear(压缩比为六,默认压缩比) | Linear(压缩比为22)(最大压缩比)| -| --- | --- | --- | --- | --- | -| 主世界 | 192MB | 142MB | 117MB | 92MB | -| 地狱 | 118MB | 70MB | 60MB | 46MB | -| 末地 | 87MB | 1.72MB | 1.2MB | 914KB | -| 保存用时 | 3m18s | 3m50s | 4m44s | 23m21s | -| 内存占用 | 3GB左右 | 3.1GB | 3.3GB | 3.4 ~ 18GB(极不稳定)| +| 世界 | ANVIL(原版格式) | Linear(压缩比为一) | Linear(压缩比为六,默认压缩比) | Linear(压缩比为22)(最大压缩比) | +|------|-------------|---------------|---------------------|-----------------------| +| 主世界 | 192MB | 142MB | 117MB | 92MB | +| 地狱 | 118MB | 70MB | 60MB | 46MB | +| 末地 | 87MB | 1.72MB | 1.2MB | 914KB | +| 保存用时 | 3m18s | 3m50s | 4m44s | 23m21s | +| 内存占用 | 3GB左右 | 3.1GB | 3.3GB | 3.4 ~ 18GB(极不稳定) | :::note