




下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車(chē)間租賃安全風(fēng)險(xiǎn)評(píng)估與管理協(xié)議
- 2025年度股份代持及公司知識(shí)產(chǎn)權(quán)保護(hù)協(xié)議
- 2025年度高校與企事業(yè)單位實(shí)習(xí)生勞動(dòng)合同范本
- 2025年度綠色出行眾籌協(xié)議書(shū)標(biāo)準(zhǔn)范本
- 二零二五年度個(gè)人股權(quán)無(wú)償轉(zhuǎn)讓與品牌推廣協(xié)議
- 二零二五年度美縫劑性能改進(jìn)與三年質(zhì)保服務(wù)協(xié)議
- Unit 4 Did You Have a Nice Trip?Lesson 22 Gifts for Everyone同步練習(xí)(含答案含聽(tīng)力原文無(wú)聽(tīng)力音頻)
- 二零二五年度競(jìng)業(yè)限制解除后的競(jìng)業(yè)限制補(bǔ)償金支付合同
- 二零二五年度高校畢業(yè)生就業(yè)安置與就業(yè)技能培訓(xùn)與就業(yè)保障服務(wù)合同
- 二零二五年度股份轉(zhuǎn)讓與新能源項(xiàng)目投資合作框架協(xié)議
- 2023年度行政事業(yè)單位內(nèi)部控制報(bào)告編報(bào)講解課件
- 品管圈PDCA案例-介入中心提高手術(shù)患者交接記錄書(shū)寫(xiě)合格率醫(yī)院品質(zhì)管理成果匯報(bào)
- 《土木工程概論》-第3講-土木工程材料-課件
- 《現(xiàn)代漢語(yǔ)》課件-詞義的性質(zhì)和構(gòu)成
- 第十七屆山東省職業(yè)院校技能大賽中職組“西式烹飪”賽項(xiàng)規(guī)程
- 華東師范大學(xué)《外國(guó)人文經(jīng)典(下)》2022-2023學(xué)年第一學(xué)期期末試卷
- 診斷學(xué):少尿、無(wú)尿、多尿
- 化工實(shí)驗(yàn)室安全培訓(xùn)課件
- 中公遴選公務(wù)員筆試真題及答案
- 儲(chǔ)能電池模組PACK和系統(tǒng)集成項(xiàng)目可行性研究報(bào)告
- 2024年安徽省公務(wù)員錄用考試《行測(cè)》真題及解析
評(píng)論
0/150
提交評(píng)論