云主機性能如何可以從以下幾個方面測試

眾所周知,云服務(wù)器的性能是我們挑選云主機的最重要的指標,今天給大家介紹的就是阿-貝云主機,阿-貝云是提供免-費虛擬主機免-費云服務(wù)器的,希望大家不要錯過了。

1、現(xiàn)網(wǎng)數(shù)據(jù)預估

現(xiàn)網(wǎng)數(shù)據(jù)預估是根據(jù)壓力測試過程中的部分數(shù)據(jù),對未來大量用戶訪問的情況機型預估。圖中的橫軸代表現(xiàn)網(wǎng)吞吐量,縱軸代表CPU壓力。

圖中綠色的部分代表當前的服務(wù)器壓力,當收集一段時間數(shù)據(jù)之后,可以模擬一條曲線。假設(shè)對服務(wù)器的上線成本預估是80%,可以通過曲線擬合的方式推測出現(xiàn)網(wǎng)的能力是多少,也從而推斷出最大上限是多少。

缺點:通常游戲服務(wù)器都是比較復雜的,這種方式只適合簡單的服務(wù)器擬合,復雜服務(wù)器數(shù)據(jù)就不太準確。

2、真人壓測

真人壓測就是通過邀請一定數(shù)量的真實用戶來玩游戲,從而對服務(wù)器達到一個測試效果。這種方式他最大特點在于用戶的行為相對是最真實的,因為用戶的使用完全不會受到限制,和線上一個真實用戶一樣。目前游戲上線過程中的“封測”,就可以被認為是一種真人壓測,可以幫助開發(fā)者發(fā)現(xiàn)一些性能問題。

但是這種方式也存在著弊端:

●暴露出的性能問題有限

許多經(jīng)過封測的游戲到上線還會產(chǎn)生問題,原因之一就是封測人數(shù)通常還是太少,雖然有幾百或者幾千用戶在玩,但是并發(fā)并不夠,不足以暴露服務(wù)端性能問題;

●不適合調(diào)優(yōu)

服務(wù)器性能測試不光需要暴露服務(wù)器的問題,暴露問題之后還需要不斷的回歸調(diào)優(yōu),但是真人是無法完全重復這些行為方式的。

3、接口測試

服務(wù)器方面的接口測試與傳統(tǒng)意義上的接口測試略有不同,當開發(fā)人員需要對一套服務(wù)器進行評估,但是又時間不足的情況下,我們可以考慮選擇一些具有代表性的功能,以及一些高風險功能進行測試,通過以小見大的方式,來評估整套服務(wù)器性能。

當然這個方法的主要問題就是無法遍歷整個服務(wù)器的接口,難以避免一些微小的問題。

4、錄制回放

這里面包含兩部分,“錄制”就是通過抓取數(shù)據(jù)包的方式,來獲取游戲時的協(xié)議,比如用戶登錄游戲時抓取登錄包;“回放”即把這些捕獲的協(xié)議重新發(fā)送給服務(wù)端,這樣理論上就可以通過工具放大協(xié)議量級達到性能測試的目的,比如將之前錄制的登入?yún)f(xié)議擴大1w倍給服務(wù)器,這樣就模擬了1w人同時登入的情況。

這個方法存在的問題是,游戲的協(xié)議交互非常復雜,如果只是單純的放大數(shù)據(jù)包,對于服務(wù)器是產(chǎn)生不了多大的壓力的。這類方法比較適合固定輸入輸出服務(wù)類型的測試。

5、機器人模擬

機器人模擬測試是對以上各種測試做了一個平衡, 通過高還原真實玩家的用戶行為,模擬高并發(fā)場景,從而得到類似很多人同時游戲的測試效果。機器人模擬有三個優(yōu)勢:

高還原游戲玩法,深度模擬真實用戶行為:

1.?并發(fā)性不受限制,從1W到10W,壓力能夠自主設(shè)置;

2.?可以反復執(zhí)行,便于性能調(diào)優(yōu)回歸;

3.?實現(xiàn)7*24小時不斷監(jiān)控,在開發(fā)提交代碼之后,版本在自動編譯之后就跑新的測試,這樣每天都能進行性能監(jiān)控,在調(diào)優(yōu)方面,完全地進行一個重復性測試,可以不斷的進行回歸和調(diào)優(yōu)。

這個方法的問題就在于機器人模擬需要專人開發(fā),對測試者的開發(fā)能力,分析能力都有一個比較高的要求。

說到這里,我們對之前所有的服務(wù)器性能測試方法進行了一個總結(jié):

我們可以發(fā)現(xiàn),速度與準確性始終是對立的,如果游戲開發(fā)者隊友服務(wù)器測試有一個明確的規(guī)劃,對服務(wù)器壓測有一定的時間預留,機器人模擬的效果是非常好的。

如何實現(xiàn)機器人模擬

那么我們到底是如何來開發(fā)一款進行服務(wù)器性能測試的機器人呢?

整個開發(fā)過程主要可以概括為三大步驟,建模, 分析, 開發(fā)。

第一步,建模。

建模是什么呢,建模是為了模擬真實玩家行為,分為兩種方法:

1)探索典型玩家關(guān)鍵路徑

通過大量玩家數(shù)據(jù)的支撐,選擇最多的行為路徑,設(shè)計機器人模擬的行為。

2)通過封測過程中的運營數(shù)據(jù),生成專家視圖

這個方法就是通過去測試服中搜集用戶的協(xié)議數(shù)據(jù),并對這些協(xié)議數(shù)據(jù)進行分析,確定各自是什么行為,把用戶的這些協(xié)議數(shù)據(jù)還原成為用戶行為的操作過程就像是把一塊塊散亂的拼圖重新組織起來一樣。

在這個過程中,最簡單的是按比例組織,通過數(shù)據(jù)分析,發(fā)現(xiàn)用戶登錄,戰(zhàn)斗各自占據(jù)多少比例,以這個比例來分配一定的人數(shù)進行登錄和戰(zhàn)斗。但是這個方式并不太適合游戲,對于游戲本身來說,一百個人不斷的重復登錄的行為,一百個人同時重復游戲的行為,顯然是不符合邏輯的。

那么在分析的過程中,采用概率的方式,是更加貼近一個真實用戶的行為的。當模擬一個真實用戶登錄之后,有一定的可能性會重新登錄,還有一部分可能性就進行戰(zhàn)斗,例如機器人有10%概率重新登入,50%概率進行戰(zhàn)斗。 同時我們還需要考慮對角色身上的裝備數(shù)據(jù), Cache的命中,數(shù)據(jù)庫容量等等,目的是讓機器人更接近真實用戶,更加符合一個真實用戶的行為。

第二步,分析。

那么我們會對客戶端進行行為交互和協(xié)議分析。一方面,為后續(xù)協(xié)議開發(fā)實現(xiàn)做準備;另外,在登入的過程中,會產(chǎn)生大量的協(xié)議,如果沒有對客戶端進行分析,可能只是調(diào)用了登錄的協(xié)議,從實際的協(xié)議交互上來說,一次登錄可能包含了很多其他的協(xié)議信息,那這時我們實現(xiàn)登入就不能僅僅是個簡單的登錄協(xié)議,可能還包含拉取郵件信息,拉取好友信息等協(xié)議,兩者之間對登入的性能差異影響非常大。

第三步,代碼開發(fā)。

主要包含兩部分:

1)協(xié)議的開發(fā),包括協(xié)議的實現(xiàn),協(xié)議的解包等;

2) 業(yè)務(wù)邏輯的組織,主要對上述游戲模型進行實現(xiàn)。

服務(wù)器性能測試工具的使用

不過令人遺憾的是,對于游戲開發(fā)者的實際情況來說,充足的測試時間并不是每次都可以保證的,而且對于模擬機器人的開發(fā)過程本身又是一個很大的投入,對于一些通用場景,如果能夠有通用的平臺代碼可以調(diào)用,相信對于游戲開發(fā)者是一種極大的解放。

對于服務(wù)器性能測試來說,好的測試要做到這樣幾點:

業(yè)務(wù)場景模擬??删幋a解析任意協(xié)議,實現(xiàn)復雜業(yè)務(wù)場景。

發(fā)現(xiàn)瓶頸。支持使用場景中復雜的數(shù)據(jù)傳輸行為,比如“登錄”“查看個人信息”等,更加真實的模擬用戶行為,發(fā)現(xiàn)服務(wù)器問題;

持續(xù)壓力。實現(xiàn)7*24小時一定量級的服務(wù)器壓力;

觸達極限。短時間內(nèi)觸達服務(wù)器的壓力上限。

靈活自定義。對于類似游戲的復雜混合場景,可以結(jié)合在線代碼開發(fā)IDE,實現(xiàn)對任何標準或自定義協(xié)議的通信。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容