網(wǎng)絡(luò)游戲性能測(cè)試方案_第1頁(yè)
網(wǎng)絡(luò)游戲性能測(cè)試方案_第2頁(yè)
網(wǎng)絡(luò)游戲性能測(cè)試方案_第3頁(yè)
網(wǎng)絡(luò)游戲性能測(cè)試方案_第4頁(yè)
網(wǎng)絡(luò)游戲性能測(cè)試方案_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第第頁(yè)網(wǎng)絡(luò)游戲性能測(cè)試方案網(wǎng)絡(luò)游戲性能測(cè)試方案

發(fā)表于:2023-02-16來(lái)源::點(diǎn)擊數(shù):標(biāo)簽:網(wǎng)絡(luò)游戲

網(wǎng)絡(luò)游戲性能測(cè)試方案軟件測(cè)試通過(guò)一輪的服務(wù)器性能測(cè)試,有些心得,總結(jié)一下分享給大家,有什么錯(cuò)誤或者建議,請(qǐng)指出。針對(duì)當(dāng)前游戲的架構(gòu),要開(kāi)展性能測(cè)試,就需要先分析當(dāng)前架構(gòu)下,預(yù)計(jì)會(huì)出現(xiàn)哪些性能風(fēng)險(xiǎn),服務(wù)器端和客戶(hù)端分開(kāi)進(jìn)行分析。服務(wù)器

網(wǎng)絡(luò)游戲性能測(cè)試方案軟件測(cè)試

通過(guò)一輪的服務(wù)器性能測(cè)試,有些心得,總結(jié)一下分享給大家,有什么錯(cuò)誤或者建議,請(qǐng)指出。

針對(duì)當(dāng)前游戲的架構(gòu),要開(kāi)展性能測(cè)試,就需要先分析當(dāng)前架構(gòu)下,預(yù)計(jì)會(huì)出現(xiàn)哪些性能風(fēng)險(xiǎn),服務(wù)器端和客戶(hù)端分開(kāi)進(jìn)行分析。

服務(wù)器端:內(nèi)存消耗、Cpu占用、登陸壓力、單服承載、同屏承載、同地圖承載、帶寬

客戶(hù)端:流量、幀數(shù)(FPS)、內(nèi)存消耗、Cpu占用、流暢度

一.服務(wù)器端

服務(wù)器端采用的是多線(xiàn)程,分為邏輯線(xiàn)程和網(wǎng)絡(luò)線(xiàn)程,分開(kāi)分析:

1.邏輯線(xiàn)程:

假設(shè)服務(wù)器設(shè)定每個(gè)心跳耗時(shí)200毫秒,即1秒5個(gè)心跳,這是一個(gè)固定值。一個(gè)心跳循叫一幀,如果某幀需要處理時(shí)間為100毫秒,那么服務(wù)器就有50%的空閑時(shí)間;再如果某幀需要處理200毫秒,那么該線(xiàn)程的cpu占用則為100%。也就是說(shuō),如果服務(wù)器一幀需要的處理時(shí)間為5秒鐘,那么客戶(hù)端發(fā)送過(guò)來(lái)的請(qǐng)求經(jīng)過(guò)處理后收到反饋需要的時(shí)間為(5秒+消息在網(wǎng)絡(luò)上來(lái)回消耗),即傳說(shuō)中的服務(wù)器卡。

那么,要驗(yàn)證邏輯線(xiàn)程卡不卡,或者要找出某負(fù)載下邏輯線(xiàn)程卡的原因,則需要記錄各種邏輯處理所消耗的時(shí)間。目前服務(wù)器邏輯消耗主要在玩家和怪物邏輯上,因而需要記錄的數(shù)據(jù)有怪物數(shù)量、總邏輯耗時(shí)、怪物邏輯耗時(shí)、玩家邏輯耗時(shí)和其他邏輯耗時(shí)。設(shè)計(jì)用例時(shí)則需要考慮不同負(fù)載下和無(wú)人空跑時(shí)的以上耗時(shí)的數(shù)據(jù)采集。

采集到這些數(shù)據(jù)后,可以得出邏輯線(xiàn)程cpu占用,怪物耗時(shí)占用百分比,玩家耗時(shí)占用百分比,并進(jìn)行分析,如果發(fā)現(xiàn)怪物耗時(shí)過(guò)多,則可以通過(guò)增加怪物休眠功能、減少怪物巡邏頻率、減少怪物數(shù)量等方式來(lái)降低消耗;如果發(fā)現(xiàn)玩家耗時(shí)過(guò)多,則需要分析是哪一塊玩家邏輯導(dǎo)致,必要時(shí)可以增加細(xì)分的玩家耗時(shí)log來(lái)獲取數(shù)據(jù)進(jìn)行分析。

2.網(wǎng)絡(luò)線(xiàn)程:

假設(shè)1個(gè)角色每秒產(chǎn)生的消息條數(shù)為a條,那么X個(gè)角色同時(shí)在線(xiàn)的話(huà),產(chǎn)生的總消息條數(shù)Y大概為:Y=a*x;而每個(gè)角色產(chǎn)生的a條消息,又分為需要廣播和不需要廣播的。

需要廣播的消息在處理后放大n倍,如移動(dòng)消息,處理完畢后需要同步給周?chē)慕巧?,如果周?chē)衜個(gè)角色的話(huà),消息條數(shù)就由1àm,最極端的情況為消息需要同步給全服角色,消息條數(shù)會(huì)由1àX;又如私聊消息是一對(duì)一,因?yàn)椴恍枰獜V播,所以處理完畢后就不會(huì)使信息量放大;最極端的情況,全服的全部角色產(chǎn)生的消息都是需要全服廣播的,比如全部玩家都在世界頻道喊話(huà),那么產(chǎn)生的消息量為Y=a*X*X。

那么,要驗(yàn)證網(wǎng)絡(luò)線(xiàn)程卡不卡,或者要找出某負(fù)載下網(wǎng)絡(luò)線(xiàn)程卡的原因,則需要記錄各個(gè)消息在一定時(shí)間內(nèi)一定負(fù)載下的發(fā)起數(shù)量、分發(fā)數(shù)量;網(wǎng)絡(luò)線(xiàn)程耗時(shí)、各種消息單種的總耗時(shí)、耗時(shí)均值、峰值;消息是否為同步消息;另外我們還可以記錄當(dāng)前服務(wù)器消息堆積數(shù),以及堆積的消息種類(lèi)和數(shù)量。

通過(guò)這些數(shù)據(jù),我們可以得出網(wǎng)絡(luò)線(xiàn)程cpu占用百分比,同步消息的平均同步次數(shù);全部消息中,同步給全服的消息、同步給周?chē)南?、不需要同步的消息占整體消息百分比;

通過(guò)這些數(shù)據(jù),我們可以哪些消息導(dǎo)致瓶頸,哪些問(wèn)題導(dǎo)致消息量過(guò)大等;通過(guò)平均同步次數(shù),可以得出同屏人數(shù)瓶頸、同地圖人數(shù)瓶頸等;通過(guò)不同負(fù)載下的數(shù)據(jù),還可以得出性能數(shù)據(jù)趨勢(shì),也就是說(shuō)可以通過(guò)500人數(shù)壓力的負(fù)載得出的數(shù)據(jù),推斷出700、1000人數(shù)負(fù)載下的性能數(shù)據(jù);同時(shí),我們還可以通過(guò)采集到的數(shù)據(jù),分析哪些消息耗時(shí)高,哪些消息數(shù)量大。得出以上結(jié)論后,就可以有依據(jù)有針對(duì)性的進(jìn)行相關(guān)優(yōu)化。

舉例:服務(wù)器在300機(jī)器人全部世界聊天時(shí),網(wǎng)絡(luò)線(xiàn)程耗時(shí)過(guò)高,消息響應(yīng)延遲非常嚴(yán)重,但是服務(wù)器采集到的消息堆積數(shù)為0,也就是說(shuō)無(wú)消息堆積。

分析:?jiǎn)栴}肯定是出在網(wǎng)絡(luò)線(xiàn)程,通過(guò)代碼分析,發(fā)現(xiàn)服務(wù)器全部接收了全部消息,所以消息沒(méi)有堆積,但是服務(wù)器接收了消息后,無(wú)法全部快速處理完,所以導(dǎo)致了消息響應(yīng)延遲嚴(yán)重,就像是部門(mén)經(jīng)理把手頭的100個(gè)任務(wù)全部丟給1個(gè)人處理,經(jīng)理手頭是沒(méi)有任務(wù)堆積,但是那個(gè)手下由于無(wú)法快速處理完這些任務(wù),導(dǎo)致任務(wù)響應(yīng)很慢。

進(jìn)一步分析,發(fā)現(xiàn)消息主要耗時(shí)分2塊:網(wǎng)絡(luò)庫(kù)消息的發(fā)送和服務(wù)器對(duì)消息的處理,比例為7:3。

問(wèn)題找到了,負(fù)責(zé)網(wǎng)絡(luò)庫(kù)的研究網(wǎng)絡(luò)庫(kù)的性能,負(fù)責(zé)服務(wù)器的程序找出對(duì)應(yīng)瓶頸。也可以采用另一種方案,那就是限制全服同步的消息的產(chǎn)生,只不過(guò)這個(gè)只是一個(gè)迫不得已的方案而已

3.接下來(lái)分析內(nèi)存風(fēng)險(xiǎn),以現(xiàn)在的配置,服務(wù)器內(nèi)存占用的多少不用過(guò)多考慮,主要要考慮的是內(nèi)存泄露,主要通過(guò)查看一點(diǎn)壓力下運(yùn)行一段時(shí)間的內(nèi)存變化情況來(lái)檢查

4.服務(wù)器帶寬的評(píng)估,可以通過(guò)記錄每個(gè)一段時(shí)間內(nèi)收到和發(fā)送給客戶(hù)端的數(shù)據(jù)包大小和數(shù)量來(lái)計(jì)算出每秒的數(shù)據(jù)量,然后換算出需要的帶寬。bps:bytepersecond。需要分析的是每秒byte數(shù),現(xiàn)有網(wǎng)絡(luò),1m的帶寬(單位是bit),帶寬數(shù)值跟流量的比例理論上為:流量=帶寬/8,加上損耗,能到達(dá)的最大流量大概為100K

5.最后一個(gè)登陸壓力,主要是驗(yàn)證登陸系統(tǒng)對(duì)于大量登陸請(qǐng)求的響應(yīng)情況。當(dāng)前情況下不用考慮,因?yàn)橛幸呀?jīng)運(yùn)營(yíng)的產(chǎn)品在驗(yàn)證。如果考慮這方面的性能測(cè)試的話(huà),應(yīng)該從一定負(fù)載下登陸系統(tǒng)的響應(yīng)情況來(lái)考慮,比如100/500/1000機(jī)器

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論