游戲作為給大量用戶使用的產品,像大部分互聯網產品一樣,需要對上線的風險和版本質量進行嚴格的控制。
一、風險節點
首次正式上線
游戲產品不同于互聯網產品一個特性是,互聯網產品很多是慢慢累積用戶的,游戲產品需要在首次正式上線時聚集足夠的用戶(可能也是大部分游戲同時在線最多的時候)。這也是開發組的噩夢,在開服日大多默默祈禱首日上線服務器不宕機,如果信佛,去靈隱寺燒個香也是個不錯的選擇。在從來沒有過的大量真實用戶的沖擊下,會有很多平時測試中沒有踩到的坑現行。各類高壓力、極低概率、復雜環境下才會出現的問題可能會涌現出來,輕則出現各種線上bug,重則直接宕機回檔。時間累積
在平安渡過首周上線后,一般服務器就沒有大問題了,這個時候也不能掉以輕心。這個時候累積風險可能在悄悄到來。比如,服務器內存或者某種資源以非常緩慢的速度正在泄漏,在慢慢積累到一定程度時,會忽然爆發出問題。新版本上線
新版本上線和首次上線比較類似,同樣是未經真正線上驗證過的功能第一次正式面向玩家。一般新版本只是小部分功能的新增或修改,風險是小于首次上線的。但是往往也正因如此,開發和測試人員會比較懈怠,從而導致問題。而且新版本上線是經常要做的事情,所以在游戲后期的運維中,新版本上線帶來的總體風險還是比較高的。火爆的活動
活動導致風險主要是兩個原因:一是活動可能是新功能第一次上線,這個風險即新版本上線風險。二是活動往往聚集比較高的人氣,而且活動一般在游戲地圖上有局部性,這就產生了局部高壓力。這就可能會對服務器的某些模塊帶來歷史新高的壓力,從來帶來風險。
二、線上問題
功能故障
某些線上功能運行出現異常情況,輕則體驗不好,重則導致某個游戲模塊完全不可用。如果是新手引導的關鍵性步驟出現問題,則直接導致玩家流失。卡頓
這個時候服務器還是能夠正常運行的,只是由于內存、CPU、壓力局部聚集等問題,導致服務器響應速度下降。宕機
當然,最可怕的就是宕機。所有玩家會失去服務器連接,而且由于玩家數據的落地是周期性的,會造成一定程度的回檔。
三、應對方案
-
充分的測試
針對服務器的風險,基本的是做足功能的覆蓋測試,另外一個最重要的也是最難的是做模擬玩家行為的壓力測試。在游戲上線之前,壓力測試一般都是做過的。為什么上線之后還是宕機了呢?大部分原因還是壓力測試都是使用的有限的case來做測試。并不能充分模擬出上線之后海量玩家的真實行為。 -
服務器監控
隨時監控關鍵數據,比如在線人數、內存、一些關鍵任務的吞吐量、數據庫運行情況、服務器程序報錯統計。
做好日志、開啟gdb,便于在出現問題時分析、定位和解決問題 -
容災機制
好吧,盡管做了大量的鋪墊工作,也燒了香。到了上線日,也不能避免忽然出現各類線上狀況。針對服務器問題的嚴重情況,對風險進行分級處理。對能不關服處理的問題,進行線上hotfix、玩家轉移等處理。如果遭遇嚴重問題,只能重啟服務器的,也要盡快確定問題并解決,否則可能重啟后很快又陷入同樣問題。如果服務器已經宕機了,如果不能第一時間找到問題,也是只能先重啟服務器,并且同時全力查找問題。 -
輿論控制
游戲服務器宕機其實很多玩家都遇到過,一個非技術的解決方案就是做好善后工作。首先是在宕機期間做 1.登錄時友善誠懇的停服提示 2.論壇停服廣告 3.重啟時全服停服預警電視條 4.停服時友善的下線提示。游戲玩家其實是非常在乎開發組的態度的,雖然我們的服務器掛了,我們要用最大的誠意表示歉意、挽留玩家、表示正在搶修,并且最好給出預估開服時間點。其實有那么一部分玩家,在遭遇服務器宕機時反而會比較開心,為什么呢?因為開發組有大殺器,停服補償。在宕機重新開服后,第一時間給予玩家體貼的補償,彌補玩家的金錢和精神損失(外加一點甜頭),會讓玩家忘記宕機帶來的不快。 -
回檔問題
回檔如何涉及到充值回檔的,還是需要高度重視的,要盡力找回玩家的損失。