游戏作为给大量用户使用的产品,像大部分互联网产品一样,需要对上线的风险和版本质量进行严格的控制。

一、风险节点
-
首次正式上线
游戏产品不同于互联网产品一个特性是,互联网产品很多是慢慢累积用户的,游戏产品需要在首次正式上线时聚集足够的用户(可能也是大部分游戏同时在线最多的时候)。这也是开发组的噩梦,在开服日大多默默祈祷首日上线服务器不宕机,如果信佛,去灵隐寺烧个香也是个不错的选择。在从来没有过的大量真实用户的冲击下,会有很多平时测试中没有踩到的坑现行。各类高压力、极低概率、复杂环境下才会出现的问题可能会涌现出来,轻则出现各种线上bug,重则直接宕机回档。 -
时间累积
在平安渡过首周上线后,一般服务器就没有大问题了,这个时候也不能掉以轻心。这个时候累积风险可能在悄悄到来。比如,服务器内存或者某种资源以非常缓慢的速度正在泄漏,在慢慢积累到一定程度时,会忽然爆发出问题。 -
新版本上线
新版本上线和首次上线比较类似,同样是未经真正线上验证过的功能第一次正式面向玩家。一般新版本只是小部分功能的新增或修改,风险是小于首次上线的。但是往往也正因如此,开发和测试人员会比较懈怠,从而导致问题。而且新版本上线是经常要做的事情,所以在游戏后期的运维中,新版本上线带来的总体风险还是比较高的。 -
火爆的活动
活动导致风险主要是两个原因:一是活动可能是新功能第一次上线,这个风险即新版本上线风险。二是活动往往聚集比较高的人气,而且活动一般在游戏地图上有局部性,这就产生了局部高压力。这就可能会对服务器的某些模块带来历史新高的压力,从来带来风险。
二、线上问题
-
功能故障
某些线上功能运行出现异常情况,轻则体验不好,重则导致某个游戏模块完全不可用。如果是新手引导的关键性步骤出现问题,则直接导致玩家流失。 -
卡顿
这个时候服务器还是能够正常运行的,只是由于内存、CPU、压力局部聚集等问题,导致服务器响应速度下降。 -
宕机
当然,最可怕的就是宕机。所有玩家会失去服务器连接,而且由于玩家数据的落地是周期性的,会造成一定程度的回档。
三、应对方案
-
充分的测试
针对服务器的风险,基本的是做足功能的覆盖测试,另外一个最重要的也是最难的是做模拟玩家行为的压力测试。在游戏上线之前,压力测试一般都是做过的。为什么上线之后还是宕机了呢?大部分原因还是压力测试都是使用的有限的case来做测试。并不能充分模拟出上线之后海量玩家的真实行为。 -
服务器监控
随时监控关键数据,比如在线人数、内存、一些关键任务的吞吐量、数据库运行情况、服务器程序报错统计。
做好日志、开启gdb,便于在出现问题时分析、定位和解决问题 -
容灾机制
好吧,尽管做了大量的铺垫工作,也烧了香。到了上线日,也不能避免忽然出现各类线上状况。针对服务器问题的严重情况,对风险进行分级处理。对能不关服处理的问题,进行线上hotfix、玩家转移等处理。如果遭遇严重问题,只能重启服务器的,也要尽快确定问题并解决,否则可能重启后很快又陷入同样问题。如果服务器已经宕机了,如果不能第一时间找到问题,也是只能先重启服务器,并且同时全力查找问题。 -
舆论控制
游戏服务器宕机其实很多玩家都遇到过,一个非技术的解决方案就是做好善后工作。首先是在宕机期间做 1.登录时友善诚恳的停服提示 2.论坛停服广告 3.重启时全服停服预警电视条 4.停服时友善的下线提示。游戏玩家其实是非常在乎开发组的态度的,虽然我们的服务器挂了,我们要用最大的诚意表示歉意、挽留玩家、表示正在抢修,并且最好给出预估开服时间点。其实有那么一部分玩家,在遭遇服务器宕机时反而会比较开心,为什么呢?因为开发组有大杀器,停服补偿。在宕机重新开服后,第一时间给予玩家体贴的补偿,弥补玩家的金钱和精神损失(外加一点甜头),会让玩家忘记宕机带来的不快。 -
回档问题
回档如何涉及到充值回档的,还是需要高度重视的,要尽力找回玩家的损失。
网友评论