本文最后更新于 1552 天前,其中的信息可能已经有所发展或是发生改变。
在之前BE服务器熊孩子过多无法处理的情况下,我尝试了间歇泉以将BE玩家代理至JE服务器,当然第一次因CPU爆炸而群组服及其子服tick处理超时而被watchdog强制杀死导致全服崩溃,更可怕的是,甚至RDP也无法响应你的请求,只能通过腾讯的VNC勉勉强强结束掉进程才恢复正常。这是为什么呢?
主要原因是间歇泉在发送计分板数据包时,一些憨憨插件计分板更新过快(例如DeluxeHub这样的大厅插件)而导致间歇泉处理如此多的数据包时CPU占用飙升。解决它很简单,在PR #1166 得到了修复,目前我也使用上了间歇泉,稳如老狗√
原文解释:Geyser updates the Scoreboard after every Scoreboard packet, but when Geyser tries to handle a lot of scoreboard packets per second can cause serious lag.
而在使用DeluxeHub这样的大厅插件,我将config中的数据包限制参数设置为30以进一步降低CPU占用。供参考。
scoreboard-packet-threshold: 30
更多信息来自GitHub Issue&Pull Request
https://github.com/GeyserMC/Geyser/issues/930
https://github.com/GeyserMC/Geyser/pull/1166
请注意,建议更新#366构建以上版本,可以杜绝人多时计分板翻译数据包时导致的CPU100%(2020.9.12补充)
/nb Shanwer
/NB shanwer