This commit is contained in:
lilingfengdev 2024-09-15 13:52:44 +08:00
parent 012004a937
commit 92e66bf344
7 changed files with 47 additions and 28 deletions

View File

@ -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`以启用

View File

@ -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
~~神无需优化~~
`-Dgraal.OptWriteMotion=true`和`-Dgraal.WriteableCodeCache=true` ,看起来不稳定,但在 GraalVM 22.3.0 中可能更稳定

View File

@ -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 的无停顿可以给玩家带来更好的体验,并且更充分的利用多核

View File

@ -8,6 +8,8 @@ slug: /optimize/jvm/openj9
这些参数只适合 OpenJ9
**这些参数的主要目的是降低内存占用,而非优化性能**
## 基础
```shell

View File

@ -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不要一起用

View File

@ -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、内存和硬盘的使用情况。

View File

@ -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