Breeze_Blowing
本帖最后由 Menzor 于 2020-3-8 13:28 编辑

在这里想对我服务器的优化寻求帮助。
服务器用的是 1.15.2 的paper端 目前是最新构建版 #129
主机采用的是 I9 9900K 独立主机 目前开了6个端 生存2个 大厅1个 地皮1个 资源1个 BC1个
很让我奇怪的是在 60人在线时 我服CPU占用居然能高达 80% 有时能把CPU吃满
当时看到有人说 1.15.2 的优化会比1.15.1做得好
我以为可能是我paper端的版本太低 于是我就把服务器从1.15.1 版本提升到了1.15.2
也就是构建版本从#61提到了#129 但是我发现我CPU占用并没有什么变化...
很让我好奇的就是 我朋友开了三个端 分别是 大厅 空岛 BC 相同配置他20人在线居然CPU占用仅6-10% (基本没高于10%过)
我对比了一下我们Bukkit spigot paper 三个文件设定我很多都比他设置的低...但是CPU占用却是他8倍
原因我是真的没找到... 很让我头疼
希望能得到各位友人的一些帮助...

附带一些配置文件
server.yml (1004 Bytes, 下载次数: 1) spigot.yml (3.53 KB, 下载次数: 4) paper.yml (5.18 KB, 下载次数: 1) bukkit.yml (1.03 KB, 下载次数: 4)

生存1区
timings https://timings.aikar.co/?id=56f30463772a43cdad3d838828230556
spark https://sparkprofiler.github.io/#jpOlkds9zT

生存二区
timings https://timings.aikar.co/?id=501ed6de1329415bbef1c03d504b9b8f
spark https://sparkprofiler.github.io/#PXsNLxBJBl
再加一个二区timings
https://timings.aikar.co/?id=1e3ec1375e2d4899beca12d3c14c30fe


(这个timings 是全服人数在40左右测试的 可能没有什么太大用处 我会在人数到峰值时重新测量并上传 )




EmptyLava
本帖最后由 EmptyLava 于 2020-3-8 13:06 编辑



我知道楼主想问为何cpu占用那么高,但是影响cpu占用的原因有很多种,主要目的难道不是为了tps高,让玩家获得更好的游戏体验吗?而现在tps是20,不就满足了要求吗

cpu占用率的对比没有意义,占用率高而tps满反而能说明性能利用率高


我只能帮你分析原因
生存1区:
1.这个一方面是区块卸载的监听事件
2.另一方面是实体(主要为烈焰人)
生存2区:
1.QuantumRPG的事件占用
2.玩家交互事件(主要是PacketPlayInUseEntity),生存1服也有这个事件而且占用也很严重,基本上限制不了
优化建议:
1.选择linux系统吧,linux的利用率更高,cpu可能会降



Breeze_Blowing
本帖最后由 Menzor 于 2020-3-8 13:15 编辑
EmptyLava 发表于 2020-3-8 12:48
我知道楼主想问为何cpu占用那么高,但是影响cpu占用的原因有很多种,主要目的难道不是为了tps高,让玩家 ...

emmm... 我目前的状况是 CPU占用率很高 且 TPS 人数多的时候会变低
例如 60人在线 二服tps会在12-15波动 然后CPU占用都不满....
这点就很头疼 想降低CPU占用率主要是想开三服分流 怕开了三服CPU占用满了= = 更卡

请问有推荐的限制实体的插件吗 我现在用是SAML和 MobFarmManager
之前也买过其他方面优化插件 比如 Lagassist 装上去感觉是负优化又卸载了
感觉目前的配置完全足够我带动服务器 可是不知道问题出在哪里
目前视距是 5 感觉不能再低了 再低对玩家就不够友好了

https://timings.aikar.co/?id=1e3ec1375e2d4899beca12d3c14c30fe
这是我刚刚测试的 2服timings 这时TPS已经开始波动了 希望能帮忙看看

xmdhs
Menzor 发表于 2020-3-8 13:12
emmm... 我目前的状况是 CPU占用率很高 且 TPS 人数多的时候会变低
例如 60人在线 二服tps会在12-15波动  ...

调低 server.properties 中 network-compression-threshold 的数字试试呢

EmptyLava
本帖最后由 EmptyLava 于 2020-3-8 14:12 编辑
Menzor 发表于 2020-3-8 13:12
emmm... 我目前的状况是 CPU占用率很高 且 TPS 人数多的时候会变低
例如 60人在线 二服tps会在12-15波动  ...


1.15.2暂时没有很好的插件来优化实体,而且我觉得你服务器内的实体优化很不错了,但是漏斗这种方块实体还需要优化(pct tick大概18%,有生物占用的一半多了),如果你真的需要实体优化插件可能我只能推荐Yasui了

我觉得占用还是主要来自这个事件

Minecraft::Packet - PacketPlayInUseEntity
count(2988)  

但是这似乎是个玩家交互事件...没有什么好方法来降低
另外此时的tps虽然波动了一点但还是很高

你可以向spigot开发者询问这个事件,另外spigot官网的event list应该解释了这个事件


GiNYAi
启动的脚本(主要是GC的部分)有对比过么

Breeze_Blowing
xmdhs 发表于 2020-3-8 13:59
调低 server.properties 中 network-compression-threshold 的数字试试呢

emmm... 因为的BC用的内网 所以那个设置的是-1

稚画
最好使用winserver系统或者其他服务器系统。另外推荐楼主关闭CPU的超线程,把频率进一步升高。MC是个吃单核比较严重的游戏,对多核的依赖相对单核不那么大。开启超线程单核心性能会下降3%左右,虽然不大但是确实存在。另外要注意例如Spigot这类文件是否有损坏迹象,因为我服务器曾经也很卡,生存服有一天突然很卡,25人左右就开始卡了,配置是5900X+64G 4000Mhz的内存+三星980 pro1TB,硬件不存在问题,后来才发现因为我超频为了性能不考虑稳定性,突然有一次系统不稳定强制关机导致Spigot文件出现损坏导致的。
最后一种可能就是插件了,这个需要慢慢查了。