《节奏大爆炸》上线以来的36小时的故事
当您看到这篇公告的时候,已是26日新的一天。而对于我们来说一场小小的战役才刚刚结束——服务器不稳定带来的问题我们终于找到解决方案了。
感谢您在《节奏大爆炸》公测首日的支持,这次我想说说在上线后的36个小时里面发生了什么,我们都在干些什么。不关乎任何卖萌、卖惨的心态,只是单纯的想和大家分享一个一起艰辛的故事,这个故事一半是我们,另一半是你们,那么,我先说:
24日18:00,中国大陆安卓版本首先在TapTap上和大家见面了;
24日20:00,为了应对App Store时不时会同步应用缓慢的可能的弊病,中国大陆iOS,中国港澳台iOS、Android上线,确保25日的时候大家都能开心的下载和玩耍。陆续有热心的玩家告诉我们,他们找到了我们的游戏,感谢你们的慧眼;
25日9:00,我们开始上班,分别在Facebook、Instagram、微博发布了游戏上线的消息;
25日10:00,YG官方为我们转发了我们游戏上线的消息,开心和激动在这一刻充斥着办公室;
25日13:30,我们陆续开始发送预约短信,告知各位先前预约的用户,我们上线的好消息;
25日14:00,服务器问题开始逐渐显现,开始有越来越多的人发现不能登录游戏,或者不能进行正常的游戏结算,我们紧急停止了预约用户的短消息发送(这也是为什么部分同学为何还没有收到短信的原因),开始解决问题 ;
25日16:00,我们不断的尝试在线手动释放Redis,来缓解遇到的问题,有效但是并不能本质的解决问题,具体的解决方案我们依然在研讨和尝试;
25日18:00,我相信这个时候同学们已经下课了,开始越来越多的玩家们进入了我们的游戏,手动释放的方式已经无法及时的缓解问题了;
25日21:00,又经过几个小时的尝试,我们还是无法解决问题,我们花了比较长的时间进行讨论,最终决定停服来进行一次彻底的改善;
25日22:00,之后的事情便是我们不断的维护并延长维护一只持续到次日的0:30,期间经过了六轮的补丁修复和自测均告失败;
26日00:30,无奈之下,我们需要通过一个较大范围的调整来彻底修复现在的问题,这个调整将会花费我们巨量的时间,所以我们开始告知玩家早些休息,等待第二天日出的来临。现在预估7:00我们可以修复问题,但对这个时间,我们并不能完全的确保。
然后是大家都很喜欢的科普小环节,关于这次问题的发生原因的解释,很难看懂,我也只能以我所知,尽可能的简单说明:
Redis 的连接池会在没有可用连接时新建一个到 Redis 服务器的连接。释放连接需要调用者主动释放。当 Redis 服务器的响应变慢时,已有的请求会挂在那里,不会立即返回连接池,所以 GameServer 就生产了一个新的连接过来。而当客户端的请求量变大时,连接池内的空闲连接也会不够用。导致 GameServer 产生新连接。这就会导致 GameServer 还在运行中时,重启 Redis 服务器(此时 Redis 需要从硬盘导入数据进内存,从而 CPU 100%)。Redis服务器无法处理 GameServer 请求,无法立即做出响应。从而有「重启 Redis后,GameServer 拼命连入 Redis」的现象。最后导致雪崩。
真的非常感谢所有支持《节奏大爆炸》的家人,我想给大家介绍一下还在努力工作的我的同僚们,我觉得我们还能再通宵36小时!


