租用幫助
大量用戶登錄游戲,往往會對游戲服務器產生巨大的壓力,比如LOL韓國服務器,游戲上線之前對服務器的承載能力做測試是必須要做的事。本文從騰訊游戲服務器性能測試的經歷出發,對服務器性能測試的原理、指標和方法進行了介紹,并介紹了內部目前流行的一些工具和使用技巧。
海外游戲服務器測試:http://www.ukunilife.com/solutions/game.html
用戶對游戲服務器測試什么?
1、游戲版本上線之后,新的服務器開放或者服務器更新,面對大量玩家的涌入,如果服務器的性能不好,就會發生登錄失敗的問題。
2、運營期壓力,玩家體驗損失
百萬級的在線人數預估,當時進行了服務器性能測試,測試結果是當時對方的服務器只能承受1500人的同時在線,如果一套服務器只能承載1500個用戶,該游戲要上線需要多少服務器?需要1000套,這無疑是一個巨大的浪費。
同樣是百萬級的游戲,有的公司需要上千臺服務器,而有的公司只要幾百臺服務器,巨大的服務器采購運維成本差異皆因各家公司做服務器性能測試乃至性能調優的能力參差不齊。
那么問題就來了,服務器性能測試是什么?要怎么做才最有效呢?
什么是服務器性能測試?
性能測試的核心概念主要包括兩部分:正確的測試方法,正確的評價性能的指標。測試方法會告訴你用什么樣的套路去執行測試;性能指標是告訴你如何用數值來描述你的測試對象的性能。
常用的性能指標
在介紹測試方法之前,先來了解一下關于服務器性能測試的一些指標含義。
●吞吐量:固定時間間隔內的處理完畢事務個數。通常是1秒內處理完畢的請求個數,單位:事務/秒(tps)。
●平均吞吐量:一段時間內吞吐量的平均值。無法體現吞吐量的瞬間變化。
●峰值吞吐量:一段時間內吞吐量的最大值。是用來評估系統容量的重要指標之一。
●最低吞吐量:一段時間內吞吐量的最小值。如果最小值接近0,說明系統有“卡”的現象。
●70%的吞吐量集中區間:通過統計15%和85%的吞吐量邊界值,計算出70%的吞吐量集中區間。區間越集中,吞吐量越穩定。
●響應時間:一次事務的處理時間。通常指從一個請求發出,到服務器進行處理后返回,再到接收完畢應答數據的時間間隔,單位:毫秒。
●平均響應時間:一段時間內響應時間的平均值。無法體現響應時間的波動情況。
●中間響應時間:一段時間內響應時間的中間值,50%響應時間,有一半的服務器響應時間低于該值而另一半高于該值。
●90%響應時間:一段時間內90%的事務響應時間比此數值要小。反應總體響應速度,和高于該值的10%超時率。是用來評估系統容量的重要指標之一。
●最小響應時間:響應時間的最小值。反映服務最快處理能力。
●最大響應時間:響應時間的最大值。反映服務器最慢處理能力。
●CPU占用率:1-CPU空閑率,表示CPU被使用情況,反映了系統資源利用情況。
常用的服務器性能測試方法:
1、現網數據預估
現網數據預估是根據壓力測試過程中的部分數據,對未來大量用戶訪問的情況機型預估。圖中的橫軸代表現網吞吐量,縱軸代表CPU壓力。
圖中綠色的部分代表當前的服務器壓力,當收集一段時間數據之后,可以模擬一條曲線。假設對服務器的上線成本預估是80%,可以通過曲線擬合的方式推測出現網的能力是多少,也從而推斷出最大上限是多少。
缺點:通常游戲服務器都是比較復雜的,這種方式只適合簡單的服務器擬合,復雜服務器數據就不太準確。
2、真人壓測
真人壓測就是通過邀請一定數量的真實用戶來玩游戲,從而對服務器達到一個測試效果。這種方式他最大特點在于用戶的行為相對是最真實的,因為用戶的使用完全不會受到限制,和線上一個真實用戶一樣。目前游戲上線過程中的“封測”,就可以被認為是一種真人壓測,可以幫助開發者發現一些性能問題。