Java 21 openjdk版本 开启minecraft服务器并在特定条件触发下性能会急剧下降

java -version
openjdk version 21.0.5 2024-10-15
openjdk Runtime Environment BiSheng(build 21.0.5+11)
openjdk 64-Bit Server VM BiSheng (build 21.0.5+11,mixed mode, sharing)

事情是这样的,一开始我在自己建的主机上开了一个mc服务器和朋友玩,并添加了大量模组,这在前几个月都是正常的,一直到把瓦尔基里添加进游戏中(这个模组在一开始是测试版,有许多bug,版本为:valkyrienskies-120-2.3.0-beta.5.jar),这一开始也是正常的,但是逐渐也能发现客户端正在变得卡顿,最终因为一个巨型建筑的完成并在上面添加了一些自制的瓦尔基里构成的火炮和岸防御炮后。无论玩家出现在世界的哪个地方、有几个人,只需要开服后进入游戏,并等待两分钟,游戏都将卡顿的无法继续游玩,并且对于想加进来的玩家来说,只会永远停留在握手阶段,再也加载不进游戏内了。

我尝试过抓包和性能分析,也怀疑过是内存回收的参数设置,但这都没有用,从抓包看,服务器的回应逐渐变得很慢很慢,但是当你注意到CPU和内存参数的时候,却发现远远没有到上限(CPU大概只有10%,内存也仅 17GB/32GB)这没有影响到其他服务。

为了解决这个问题,我将服务器搬至Windows里,想做更好的监控,但是当我把服务器搬到Windows下的时候,这个问题就消失了。后来我通过其他地方了解到Windows的jdk编译版本和openjdk编译版本是不一样的,并尝试在我的服务器上使用甲骨文编译的jdk版本,这问题被解决了

但是我仍然不清楚具体原因是什么,并且这个问题是否影响了很多代、还有什么触发条件、是否存在安全漏洞,我只能给出更换Javajdk的答案