【简介】
BDS 作为 mojang 官方发布的开服工具,为广大 minecraft 腐竹提供了简单方便、一键开服、全特性支持等众多福利
当然,在使用 BDS 以及 BDS 插件开服的过程中,难免会遇到一些如崩溃、假死、卡顿等等的特殊情况。一般来说,这些情况不太容易排查问题,可能有很多因素有如下这些:
1. BDS服务端自身稳定性问题
BDS服务端本身存在一些没有被测试团队发现的问题,即使是在纯净服运行过程中也会发生崩溃的情况,当然这种情况一般不多见,社区也会尝试进行修复
2. 存档出现问题,或者存档内特定元素过多,造成计算压力过大
由于服务器非正常关闭、外挂等等因素,有可能会导致你的存档出现问题,表现即为反复出现假死、崩溃、严重卡顿等问题,在更换存档之后就不再发生
3. 插件与加载器安装版本错误
在众多的崩溃问题中,绝大部分都是由这种原因引起。
正确配置服务端和插件对于萌新腐竹来说一般并不容易,而版本错误就会导致服务端崩溃的情况出现
4. 漏洞与黑客攻击
BDS社区的蓬勃发展,自然也会招来许多对BDS社区崛起有敌意的个人或团体的恶意攻击。社区已经对黑客发现的漏洞进行了多次封堵,但是ddos攻击和漏洞利用仍然是黑产团体攫取利益的首选方式。
如果你的服务器突然出现莫名崩溃或者假死的情况,不可以忽略这方面的原因。因此,请积极对照下方说明进行问题排查,只有从根源上解决问题,才能杜绝此类事件的不断发生
前往https://www.minebbs.com/resources/bds.3444/安装抓包工具,抓取数据包进行检查
【问题排查与解决】
下面,我就如何排查崩溃 / 假死等这方面的问题进行简单的说明
【服务器时不时出现崩溃】
崩溃,现象一般很明显。就是服务端正常运行过程中突然程序终止,玩家被全部踢出。再次重开服务端之后,玩家才可以重新进服,频繁的崩溃可能对服务端存档有负面影响
你可以按照如下顺序排查问题:
一. 开服是不是跑错程序了?LLPeEditor是否运行了?
首先,如果不运行LLPeEditor,LL加载器将无法正常工作。请不要忘记
其次,开服应该运行bedrock_server_mod.exe,而不是原版的bedrock_server.exe。
二. 检查加载器版本对不对
这一般是崩服的重头戏,60%的崩溃大多都是因为安装错误所导致的。
一般来说,插件加载器与BDS版本大多是一一对应的关系。如果你使用的是最新的BDS服务端,那升级的时候请务必不要忘记把插件加载器一起升级
如果这对于萌新腐竹来说过于困难,那可以先从尝试使用一些论坛的整合包开始,慢慢熟悉这个环境
另外,如果有些插件的版本错误,可能也会导致这种问题。各位腐竹如果遇到问题,需要首先耐心排查此类原因
三. 其他原因:查看崩溃日志确定问题
LL 加载器从 2.0 版本开始,内置了 CrashLogger 崩溃日志记录工具。每当发生一次崩溃,工具会将崩溃时服务端的堆栈以及转储信息保存下来,以便后续进行崩溃原因分析
打开 服务端根目录/logs/Crash 文件夹,可以看到每次崩服的时候记录的相关数据
提醒:
由于Fishing反作弊、CSR等插件的反调试壳与CrashLogger冲突,在检测到你安装了这些插件的时候,LL内置的CrashLogger将不会启动,在开服时也会输出黄字提醒腐竹注意这个问题。
由于崩溃记录工具无法启动,因此在崩服时,也无法记录相关崩溃日志信息,导致无法确定崩服原因。
由此发生的崩服请腐竹自行处理,开发者无法提供更多帮助。
由于Fishing反作弊、CSR等插件的反调试壳与CrashLogger冲突,在检测到你安装了这些插件的时候,LL内置的CrashLogger将不会启动,在开服时也会输出黄字提醒腐竹注意这个问题。
由于崩溃记录工具无法启动,因此在崩服时,也无法记录相关崩溃日志信息,导致无法确定崩服原因。
由此发生的崩服请腐竹自行处理,开发者无法提供更多帮助。
将文件夹中的内容按时间排序,你可以将最近的几次信息保存,然后前往插件交流群寻求大佬帮忙查看原因
四. 更多说明
目前,腐竹们广泛使用的LiteLoaderBDS系列插件加载器拥有SEH崩溃异常截获机制,相关机制的实现使得插件的稳定性大大提高,几乎不再可能出现由LL插件主动导致的崩溃。
所以,在排查过程中,请注意重点关注那些没有被LL系列保护机制保护到的插件
当然,如上所说,BDS本身也会发生崩溃。崩溃的原因也许很复杂,也许很难排查,各位腐竹如果遇到这样的问题,一定要保持耐心
【服务器时不时出现假死 / 卡顿】
常见假死的如后台运行命令没有响应,游戏内操作没有反应或者玩家掉出游戏,但进程仍在运行等等,也可能出现CPU满载、内存爆满等异常现象
常见的卡顿一般表现为CPU负载过大,游戏内TPS严重减低,影响玩家游戏体验
你可以按照如下顺序排查问题:
一. 服务器卡顿
服务器卡顿的可能原因有很多,在这方面,排查难度较大。可能导致卡顿的原因有:
1. 存档内实体过多 或者 大量实体堆积距离过近、发生挤压等等
2. 存档内存在频繁运行的、或者大型的红石机械、特性机械、卡服机器等等
3. 选用了性能不佳的插件
4. 网络带宽不够,或者网络质量问题
5. 服务器硬件性能不足
等等。
腐竹首先需要自行对上述原因进行自行排查,确定问题来源,以免后面产生不必要的麻烦
二. 误入选择模式
直接运行exe开服固然带来了很大方便,但是对控制台不熟悉的腐竹也有可能会误操作导致一些问题。目前来看,绝大多数的所谓”假死“都是由于误操作点击了控制台内部的黑色或者文字部分,导致进入了如图的”选择模式“
这时候,你会发现按一下回车(Enter)键,选择模式就退出了,游戏也恢复正常了
对于系统相关设施不太熟悉的腐竹,请务必避免误操作
三.其他原因:收集相关数据检查确定问题
不同于崩溃,假死 / 卡顿的进程仍然在运行当中,因此可以很方便地收集各类性能数据和堆栈信息,以查出问题的实际原因。
收集数据的工具主要有这两种:dump 转储文件,以及 WPR 性能分析记录。两者记录的重要信息有助于快速确定问题原因
按照如下步骤记录相关数据
1. 下载此资源的压缩包文件,里面包含了收集信息的工具
将工具下载后解压,备用
2. 记录dump转储文件
使用解压出来的 ProcDump 工具记录 dump 数据。双击解压出来的文件中的 DumpProcess.cmd 批处理文件
到这里,dump转储文件的保存已经完成了3. 记录WPR性能分析数据
使用解压出来的 WPR 性能分析工具记录性能分析数据。
在保证BDS服务端进程并没有崩溃关闭的前提下,打开WindowsPerformanceRecorder.exe 程序
如果程序打开失败,请尝试到此帖子下载安装VC++运行库后再次尝试
Visual C++ 微软常用运行库合集 - https://www.minebbs.com/resources/visual-c.37/
Visual C++ 微软常用运行库合集 - https://www.minebbs.com/resources/visual-c.37/
WPR 工具成功打开之后,会弹出一个简单的窗口
然后点击右侧的 Start 按钮开始记录。按钮上方会显示已经记录数据的时长
在记录一段时间(如1分钟)过后,你需要点击Save按钮停止记录,进入保存页面
点击 Browser 按钮,选择前面提到的 Result目录,然后点击下方的 Save 按钮,保存数据。保存完毕之后,关闭程序
4. 寻求帮助
现在,你有了两份完善的错误与性能报告数据。你可以将它们打包,然后前往插件交流群寻求大佬帮忙查看原因
注意!一般插件群的大佬们都比较繁忙,因此,请尽量排查其他原因,彻底无法解决之后,再来寻求社区的帮助