Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 49549|回复: 539

[服务器应用] [服务器应用][2021.6.6][CPS]服务器配置文件优化 — 用测试数据说话,TPS最高提升100%

  [复制链接]
EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
发表于 2020-7-20 16:08:59 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 EmptyLava 于 2021-9-19 16:11 编辑

服务器配置文件优化
- 前言 -

- 这篇教程的意义?
- 目前站内的100%关于配置文件的优化教程,大多都是凭借前人经验与个人感觉,而实际的优化效果可能欠佳,不但优化效果差,还会严重影响玩家体验。而本篇教程就是为了在配置文件中找出最有效的配置项,以及最佳优化效果时的数值,并结合形成整个配置文件优化。
  ②高版本(1.13+)教程稀缺,大多数还是1.7-1.9/1.12的教程,导致玩家无法得知新增配置项的意义而使用旧教程中的配置项修改推荐,损失了大量服务器性能。

- 你的测试数据怎么让我们信服?
- 我们每次测试都会记录下测试数据,然后公布在腾讯文档(以后可能会发布在pastebin上),每一次测试都可以寻找到spark链接和当时的TPS/Chunks/Entities/Tiles,同时我们会尽量减小测试的误差。

- 测试平台是?
- Windows Server 2016 / Intel Xeon E5 2689 2 Cores / 6GB
  服务器进程的内存分配为4000M
  启动参数为 java -jar -Xmx4000M -Xms4000M server.jar
  服务器版本在测试时会有说明,大部分为1.12/1.15,也有1.13/1.14/1.16内容 服务器种子为114514(防止地图建筑等对测试的影响)
  数据收集默认使用Spark

- 我的服务器是1.11或更低版本的,看你的这篇教程有用吗?
- 对于这些服务器版本,教程所说的部分配置项可能不存在,但您仍然可以参考本篇教程

- 测试原则
- 测试用服务端不会在每次测试后进行更换,但可能会重新生成地图。
- 若测试的配置项为A,但配置项B会大幅影响A的作用,则禁用配置B。
- 默认区块加载数为10或16,不同于这两个值的情况会额外说明。


- 其他
- 结论的表格中的“综合提升”有一定参考价值,在实际环境中的提升效果会有一定折扣(除非服务器没有插件占用),‘针对提升’是针对某些单一方面的(看针对提升的效果时,请注意这个配置项测的是什么),一般反映的是这项配置的最大优化能力,请勿把针对提升当做此配置的真实优化水平!
- 这种字体一般是对前文的解释或者提醒,它一般在表格外
   [1]这种跳转链接也是对前文的解释,但它一般是在表格中。因为过长的注释会影响表格的美观
   [1.13+]指1.13及更高版本;[1.13-]指1.13及更低版本


- 更新计划
- 当前进程:
        重写教程(使用原测试数据)
        进度 3/18

点击最上方目录选择内容


评分

参与人数 28人气 +48 金粒 +172 收起 理由
2214513899 + 1 + 10 高呼666!
2503180246b + 1 + 6 MCBBS有你更精彩~
louyukai + 2 MCBBS有你更精彩~
Afrojack + 1 + 10 非常全面,感谢大佬
浪子星辰 + 1 非常支持
3042614399 + 1 + 5 牛蛙
wdfkc + 1 神乎其技!6的飞起!
江戈. + 1 MCBBS有你更精彩~
郑炜孙 + 2 神乎其技!6的飞起!
Adonga + 1 MCBBS有你更精彩~
HaPi_r + 2 + 6 1.17是不是先可以开始了qwq pre1了.
佳佳的鱼 + 1 Ssssssssssssssssssss
Tomat + 2 MCBBS有你更精彩~
Azitate + 3 + 30 MCBBS有你更精彩~
a804301356 + 1 + 20 干货,楼主n
石叶尾猫 + 2 这种教程请申精吧!
异类控 + 1 神乎其技!6的飞起!
Bad_Guy + 2 非常感谢,有理有据!
氧氧 + 1 神乎其技!6的飞起!
wdx123456 + 1 6

查看全部评分

EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
 楼主| 发表于 2020-7-21 10:16:40 | 显示全部楼层
本帖最后由 EmptyLava 于 2021-8-15 22:05 编辑


更新日志:
2020.7.20~2020.8.23:发布帖子,共进行163次测试(146次有效,17次无效)。
↑主体更新

↓非主体更新
2020.8.12~2020.8.24
①总结中的配置文件添加了对Arclight(1.14/1.15)的支持
②现在的Catserver/Mohist/Paper/Bukkit/Arclight配置文件中都基于自身和自身版本的文件了,而不是再使用Paper 1.12.2提供的(Catserver,Mohist都针对MOD服删减了配置文件内的一些配置项,直接使用Paper的文件不会造成什么后果,但是会让服主以为这个配置项可用。实际上它不会生效。),修改了一些差异性内容
2020.8.16优化排版
2020.8.18:添加了总结部分对于玩家事件/数据包传输这两个占用较大的项目的提醒。
2020.11.26:优化排版,删除部分冗杂内容,更改了一部分配置项修改建议
2021.2.18: 更新paper.yml chunk-tasks-per-tick的描述
2021.2.24: 更正/更改大量描述,优化排版
2021.3.13: 更正大量描述





回复

使用道具 举报

EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
 楼主| 发表于 2021-10-28 12:30:46 | 显示全部楼层
本帖最后由 EmptyLava 于 2021-10-28 12:45 编辑
WileStone 发表于 2021-10-28 12:19
楼主,插件版优化包损坏了,解压都是乱码文件夹名字

如果下载附件后解压出现乱码,请按照以下方式修复

压缩软件解压时,设置文件名编码为UTF-8
设置方法见下方链接
https://www.zhihu.com/question/384336846



回复

使用道具 举报

EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
 楼主| 发表于 2022-4-21 22:18:48 | 显示全部楼层
本帖最后由 EmptyLava 于 2022-4-21 22:20 编辑
89925041 发表于 2022-4-21 21:20
1.17的配置能给1.18用吗

1.18.1-config.zip (0 6.35 KB, 下载次数: 44)

评分

参与人数 1金粒 +6 收起 理由
89925041 + 6 高呼666!催更完善,提前催更1.19配置.

查看全部评分

回复

使用道具 举报

蕾米洛伊 当前离线
积分
2394
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-6-10
查看详细资料
头像被屏蔽
发表于 2020-7-20 16:22:23 | 显示全部楼层
插个嘴,可以把标题改的明白一点比如MC服务端配置文件优化,一开始以为是插件开发读写配置文件的优化懵了半天(((另外腾讯文档好像不登陆看不了

评分

参与人数 2人气 +3 金粒 +18 收起 理由
结城希亚 + 1 读写还要优化吗,就拿几条
EmptyLava + 2 + 18 MCBBS有你更精彩~

查看全部评分

回复

使用道具 举报

EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
 楼主| 发表于 2020-7-20 16:51:40 | 显示全部楼层
本帖最后由 EmptyLava 于 2021-2-15 10:36 编辑
蕾米洛伊 发表于 2020-7-20 16:22
插个嘴,可以把标题改的明白一点比如MC服务端配置文件优化,一开始以为是插件开发读写配置文件的优化懵了半 ...

ok已修改
后续可能会用pastebin或者其他平台来代替腾讯文档
回复

使用道具 举报

华小鸽 当前离线
积分
89
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-7-14
查看详细资料
发表于 2020-7-20 17:22:23 | 显示全部楼层
114514还行 草
回复

使用道具 举报

神崎长闲 当前离线
积分
5597
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-4-3
查看详细资料
发表于 2020-7-20 17:29:34 | 显示全部楼层
114514

私货警告

这是大佬要开新坑了吗
回复

使用道具 举报

嘉晚饭,赢 当前离线
积分
33608
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-7-29
查看详细资料
发表于 2020-7-20 17:29:46 | 显示全部楼层
Windows Server 2016 / Intel Xeon E5 2689 2 Cores / 6GB
这个配置看起来很眼熟呢

评分

参与人数 1金粒 +5 收起 理由
EmptyLava + 5 草草草

查看全部评分

回复

使用道具 举报

极光creeper 当前离线
积分
10415
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-8-26
查看详细资料
发表于 2020-7-20 17:41:36 | 显示全部楼层
本帖最后由 极光creeper 于 2020-7-20 17:43 编辑

原来如此,挺好的
最近在练习打字,可以不管我的,只是一点小小的建议,希望能采纳/探讨一下

比如你们一上来就选择了最难的一个View-distance

    我们粗略地把生产环节里的地图分为Generation和Loading以及Lighting三个部分

    "Generation",它在1.13前和1.13后的逻辑是不一样的,虽然Generation还要再作区分,但是我就这么一概而论吧
    此外,在世界生成过程中,1.15后一般使用2个线程,而之前的表现更差

    "Loading",对于内存而言,1.14及以后不再只加载视野中的"view distance"区块(请允许我使用这样野鸡的说法),
    它还会加载内存中的区块,以及区块的加载策略也有了非常大的改动,它不是单纯的一股脑,数据全塞到内存里

    "Lighting",同样的,由于光照引擎的修改,Lighting也要区分1.14前和1.14后,mj其实是在优化多线程的(笑

    网络因素(波动),延迟峰值 也是有必要考虑到的


    所以说起来如果要测试,你必须在至少4个情景下测试
    · 1.13以前
    · 1.13
    · 1.14
    · 1.15及以后
    · 指不准哪天还要测试更多,单单测试一个,实在是太不具有普适性了
      我相信这就是大家很少写这种基于测试的教程的原因,它就是超绝麻烦

    这些是必须要注意的,所以我推荐超大号红字写清楚这个问题,否则还是挺麻烦的
    以及在不同的核心线程数量下,地图生成,光线引擎等等 它们的情况也是不一样的

    同样,GC也是一个非常大的问题,众所周知,大家可以轻松地使用16GB在1.8带300个玩家
    但对于1.15,在逻辑上就拒绝了那么多玩家 (它强推了分布式架构),对于GC Root大小的要求也是更进一步的

    这样独立出来的测试并不是一个非常好的做法
    对于你的较少内存(你测试中只给了1536M),它可以大量利用cpu进行一个回收
    而测试中禁用回收则完全不是在模仿生产环节,它的目标是生产环节
    最初,你可以在禁用区块回收的情况下进行测试,但是这个数据最好放在最后公示,因为它可能不太适合作为最终结论

    我想,这就是其他教程给人模棱两可的感觉的原因了,毕竟在生产环节上服务器还会崩溃呢(笑



评分

参与人数 1人气 +3 金粒 +30 收起 理由
EmptyLava + 3 + 30 神乎其技!6的飞起!

查看全部评分

回复

使用道具 举报

EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
 楼主| 发表于 2020-7-20 18:04:27 | 显示全部楼层
本帖最后由 EmptyLava 于 2020-7-20 18:06 编辑
极光creeper 发表于 2020-7-20 17:41
原来如此,挺好的
最近在练习打字,可以不管我的,只是一点小小的建议,希望能采纳/探讨一下
你的想法很有建设性,在接下来我也会参考的(

在实际设置参数的时候也考虑到了很多
我也想到了1.12 1.13 1.13+的区块机制变化,但是由于个人屑电脑的缘故可能不会测试到1.14,1.13的区块改了很多,对于1.13或更高版本也有一定的说服力

网络问题也想到了,如果网速过低会导致区块还没被加载/生成就要被卸载了

内存的话后面分了5G,对于1个人,chunks不超过2k的情况下富足了
而测试中禁用回收则完全不是在模仿生产环节,它的目标是生产环节

其实我是想尽量还原生产环境的,在设置参数的时候我可能更多考虑到了多玩家的时候(10个分开的玩家不就相当于一个玩家跑图10*[view-distance*16]的距离,而且没有进行区块回收吗(  )

评分

参与人数 1人气 +2 收起 理由
极光creeper + 2 辛苦辛苦

查看全部评分

回复

使用道具 举报

EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
 楼主| 发表于 2020-7-20 18:22:35 | 显示全部楼层
本帖最后由 EmptyLava 于 2020-7-20 18:24 编辑
极光creeper 发表于 2020-7-20 17:41
原来如此,挺好的
最近在练习打字,可以不管我的,只是一点小小的建议,希望能采纳/探讨一下

还想和您探讨一下 计算配置文件提升效果的时候 基准应该选哪个

只有一个spark的采样数据

我就只想到两种
1.(Thread.sleep优化前占比%-Thread.sleep优化后占比%)/(1-Thread.sleep优化前占比)=优化效果
2.(Thread.sleep优化前占比%-Thread.sleep优化后占比%/(1-Thread.sleep[0tile,0entity,出生点加载区块数]的占比%=优化效果

但是好像都不是很好,看一下您能不能出点招
不能接受加权等算法,这样的优化效果就没什么意义了
回复

使用道具 举报

九野纱夜 当前离线
积分
28086
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-12-14
查看详细资料
发表于 2020-7-20 18:34:06 | 显示全部楼层
EmptyLava 发表于 2020-7-20 18:22
还想和您探讨一下 计算配置文件提升效果的时候 基准应该选哪个

只有一个spark的采样数据

后排小声吐槽
为什么要看sleep来作为优化效果对比(?)也许可以更加全面一点(?)
而且sleep我觉得不稳定 大概

也许可以具体到某个方法调用次数/[平均/峰值]耗时
还可以看看多核利用率是多少?

像这样看看每个线程IO cpu情况
如果可以 使用jdk或者其他工具记录内存/CPU/GC/IO情况

毕竟核心数量不同 ↑可能会有所不同X

比如我这块上古80G硬盘的电脑 玩mc可能是卡在IO上


评分

参与人数 2人气 +4 金粒 +44 收起 理由
极光creeper + 2 + 20 Ssssssssssssssssssss
EmptyLava + 2 + 24 MCBBS有你更精彩~

查看全部评分

回复

使用道具 举报

EmptyLava 当前离线
积分
16413
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-7
查看详细资料
 楼主| 发表于 2020-7-20 18:40:02 | 显示全部楼层
本帖最后由 EmptyLava 于 2020-7-20 18:41 编辑
阴阳师元素祭祀 发表于 2020-7-20 18:34
后排小声吐槽
为什么要看sleep来作为优化效果对比(?)也许可以更加全面一点(?)
而且sleep我觉得不稳定  ...


就论view-distance吧
还会影响entity tile等,算方法调用时间的话好像挺麻烦的

方法调用耗时这个想法挺好的呀,spark上也有

cpu利用率的话纯粹一乐..误差太大
  1. 以上都没有[s],只是被之前的代码套了
复制代码

回复

使用道具 举报

九野纱夜 当前离线
积分
28086
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-12-14
查看详细资料
发表于 2020-7-20 18:41:44 | 显示全部楼层
本帖最后由 阴阳师元素祭祀 于 2020-7-20 18:44 编辑
EmptyLava 发表于 2020-7-20 18:40

就论view-distance吧
还会影响entity tile等,算方法调用时间的话好像挺麻烦的

方法耗时不需要具体到每个细节 大块大概就好了(?)
可以看出来 view-distance影响的大块是哪个地方

然后..
cpu利用率可以看每个线程
主要是看多线程优化怎么样(bushi



↓我记得我看timings的时候 还有chunk相关的

评分

参与人数 1金粒 +5 收起 理由
EmptyLava + 5 记录了tickentities和dotick

查看全部评分

回复

使用道具 举报

结城希亚 当前离线
积分
20435
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-8-26
查看详细资料
发表于 2020-7-20 19:06:25 | 显示全部楼层
等个能拯救大型次元的配置
指暮色跑图、交错次元跑图,实测即使预载了,跑得快还是...

评分

参与人数 1人气 +1 收起 理由
极光creeper + 1 等分布式来救命吧

查看全部评分

回复

使用道具 举报

PixelCloud 当前离线
积分
2780
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-3-30
查看详细资料
发表于 2020-7-21 10:43:39 | 显示全部楼层
挺好 支持一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2022-5-29 17:57 , Processed in 0.099392 second(s), Total 35, Slave 34 queries, Release: Build.2022.05.24 1725, Gzip On, Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2022 我的世界中文论坛 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载

快速回复 返回顶部 返回列表