Minecraft 服务器使用全部 CPU

Minecraft server use all CPU

我想在我的 raspberry PI 4-b 和 8 GB RAM 上创建一个私人 Minecraft 服务器(在 1.17.1 上)。

我已经安装了 Ubuntu 服务器 64 位和 openJDK 17 但实际上当我启动我的服务器时它会在几秒钟后回复我。

Can't keep up ! Is the server overloaded ? ...

我还用 htop 检查了进程,我可以看到 minecraft 至少需要大约 30 个线程并使用我所有的 CPU (400%) 所以我试图限制线程的数量但是 dosent 工作的...有人知道我可以做些什么来优化我的世界服务器吗?

还有我的 shell 启动我的世界服务器的脚本:

java -jar -server -Xmx4G -Xms1024M -XX:CICompilerCount=4 server.jar nogui

此外,这是我的 timings :

 Pct Total  Pct Tick       Total             Avg     PerTick      Count     Event
  24.99%      24.90%     83.62 s        12.45 ms     1.0           6.7k     world - doTick
  19.14%      19.07%     64.03 s         9.54 ms     1.0           6.7k     world - tickEntities
   6.01%       5.99%     20.10 s         2.99 ms     1.0           6.7k     world_nether - doTick
   4.41%       4.39%     14.74 s         2.19 ms     1.0           6.7k     world_the_end - doTick
   1.39%    9,303.90%     4.65 s     4,651.95 ms     0.0           0.0k     World Save
   0.44%       0.43%      1.46 s         0.22 ms     1.0           6.7k     world_nether - tickEntities
   0.42%       0.41%      1.39 s         0.21 ms     1.0           6.7k     world - tracker
   0.20%       0.20%      0.68 s         0.10 ms     1.0           6.7k     world_the_end - tickEntities
   0.10%       0.10%      0.32 s         0.05 ms     1.0           6.7k     world_nether - tracker
   0.03%       0.03%      0.11 s         0.02 ms     1.0           6.7k     world_the_end - tracker

从您服务器的 your timings 中,有这一行:

1.39%   9,303.90%     4.65 s     4,651.95 ms     0.0           0.0k     World Save

它代表了您的大部分问题。比如不是因为:

  • 插件:无法快速修复(通过向插件owner/deleting报告)
  • 不是 bukkit 事件问题
  • 没有勾选实体(实体太多)
  • RAM 太多

比如是因为保存,什么会造成这个问题:

  • RAM: 8Go 可以接管 50 名玩家(包括插件),所以显然没有。
  • Java: JDK 17 是最新的所以很难有这么多问题我不认为
  • CPU:你说这个。有可能,但是能在这种产品上运行,不应该是这个,也不会超过9k%。
  • 存储:我认为你的存储不好。它不是 SSD,所以您的整个服务器都在等待保存它。可以在 spigotmc 上用 this thread 证明。

如何解决?

这显然很难不购买新的存储空间

你可以尝试不保存,除非没有任何玩家,例如。

您也可以尝试减少所有可以产生存储保存的功能:

  • 升级自动保存(在bukkit.yml
  • 渲染距离(在server.properties
  • 升级 despawn 物品,箭头...(在 spigot.yml
  • 降级 生成限制(在 bukkit.yml