2011年7月7日更新后,服务端基本稳定,
本次认定原因是D2DBS的架构问题,因此彻底放弃原先开源项目BNETD中的D2DBS。
技术团队对构架进行了重新规划并重新编码,经过连续2天的编写和测试,重写了D2DBS,同时优化了与Game Server的通信协议,通信量较原先压缩了30%,提高了网络环境恶劣时的通信性能。
至此,战网第三赛季问题基本解决。
近几天将继续解决后续技术问题,服务器除自动重启之外将不安排计划外的停机,如需停机,将提前2小时公告。
论坛管理问题和玩家关系协调问题,请等待maxwell统一部署。
感谢大家7天以来一如既往的关注91D2,日后第三赛季的正常进行归功于各位的支持和理解,希望各位能与91D2团队一同打造一个圆 满的第三赛季。
近期时间表:
7月7日到7月8日 解决后续问题,解决服务器异常期间发现的其它非主要的遗留问题,恢复战网在异常期间暂停的一切业务。
7月9日 开始陆续安排BBS及战网活动。
原技术汇报内容如下:
此贴不谈硬性限制,不谈服务器网络和硬件瓶颈,只汇报战网服务端程序的问题。
顺便广告一下:期待各位有C/C++开发经验的玩家加入到91D2技术团队中,与我们共同完善游戏服务端,增值服务的大部分收入都将作为技术研发经费来补贴各位的劳动成果,虽然不多,但代表91D2三位创始人的心意,以感谢诸位为暗黑玩家服务的精神。联系方式:论坛短信maxwell,最好通过qq方式: 7240067
一、战网服务端架构:
先汇报下总体技术架构,战网的服务有bnetd、d2cs、d2dbs和d2gs,其中登录服务器上运行了bnetd、d2cs和d2dbs。
bnetd负责战网登录、账号管理和聊天频道管理,这是面向玩家的主入口;
d2cs负责战网角色管理,包括人物的创建等,这是国度的主入口;
d2dbs负责处理角色数据的存取,这是游戏内部角色数据管理的通信出入口;
d2gs负责提供游戏内容,这是真正的游戏服务端,通过调用暗黑本身的函数实现游戏逻辑,这是玩家的游戏入口。
战网从第二赛季后期开始尝试自主研发d2gs,将gs拆分为一个game server进程和多个game engine进程,在game server中设立trunk,用于向game engine转发游戏数据包,实现多个暗黑服务在多个CPU上的均衡,缓解跳ping问题。同时如果game engine出现异常,game server会对其执行故障恢复,避免因局部故障导致服务器整个崩溃。
但由于暗黑代码并非我们所有,编写程序进行涉及游戏内容的压力测试难度较大而且并发较少。
因此一直以来,尽管采取公测和号召玩家执行测试等方式,压力测试力度也仍然无法达到期望值,有一部分只在高并发时体现的问题我们无法发现。
二、开荒前24小时问题简要分析:
问题主要有两个地方,一是game engine中的一个内存补丁错误,被patch的代码仅在高并发(400个玩家以上)时才会被执行,在发现问题后进行了修正;
二是game server与game engine的传值与回调通信机制存在一个隐性的逻辑问题,数据交换量过大时可导致game server崩溃,在发现问题后进行了修正。
三、开荒24小时到现在问题简要分析:
现在问题重点从游戏服务端转移到了战网服务端上,d2dbs在处理game server的数据包时存在一个问题,导致通信线程陷入异常,造成频繁的掉线、回档和卡号,
技术团队正在对d2dbs执行压力测试,以追踪这个问题,预计需要一定的时间来解决。
四、关于一些臆测的回应:
现在游戏排队是为了缓解问题而限制了游戏数量,并非推广暗金ACC所为。
某位专家所说的当前问题与暗金ACC特权有关,并非毫无道理,但确实不是问题原因。战网的问题目前确认集中在角色数据交换机制上,并将全力解决。
五、虽然不说,还是得说:
不得不说,的确是91D2-SH国度相对于其它GS最为稳定,因为不存在game server与d2cs和d2dbs间的通信瓶颈,
而其他国度总是因为带宽原因出现卡号,技术团队期望通过改进角色数据交换机制来缓解问题,让瓶颈对游戏的影响减至最小。
以上为技术汇报,欢迎各位大家赐教,也许您脑中一闪而过的想法 会对我们的技术人员有所启发,有助于我们更快解决问题。
感谢大家长久以来对91D2的关注和支持,尽管开荒不尽如人意,但问题会解决,
希望各位能与坚守在第一战线的各位版主和maxwell等管理人员一样,陪同91D2一起走下去。