【戰(zhàn)爭(zhēng)雷霆-社區(qū)回復(fù)】關(guān)于上周末服務(wù)器技術(shù)問(wèn)題的回復(fù)

開發(fā)團(tuán)隊(duì)理解玩家不能正常進(jìn)行游戲時(shí)的焦急與失望的心情,但與市面上其他采用客戶端/服務(wù)器架構(gòu)的產(chǎn)品服務(wù)一樣,我們的游戲是一個(gè)復(fù)雜的集合體,而相對(duì)分散的架構(gòu)則將游戲功能分配給不同的服務(wù)器,其中任意一環(huán)出錯(cuò)都有可能帶來(lái)致命后果:這其中包含有登陸驗(yàn)證服務(wù)器、存儲(chǔ)玩家資料的服務(wù)器、對(duì)戰(zhàn)服務(wù)器、組隊(duì)功能相關(guān)的服務(wù)器與處理語(yǔ)音聊天功能的服務(wù)器。以上提到的服務(wù)器在現(xiàn)實(shí)中不僅僅是一臺(tái)終端而已,而是包含數(shù)十臺(tái)設(shè)備的服務(wù)器集群!除此之外我們還通過(guò)代理服務(wù)器來(lái)盡量減少錯(cuò)誤的發(fā)生,而匹配這項(xiàng)工作本身則由另一組服務(wù)器集群負(fù)責(zé)。
闡明游戲服務(wù)器的具體機(jī)能分配后,讓我們?cè)敿?xì)為您剖析上周末的服務(wù)器亞空間風(fēng)暴期間都發(fā)生了些什么:一座網(wǎng)關(guān)設(shè)備在連續(xù)運(yùn)行 375 天后按計(jì)劃進(jìn)行了一次重啟工作,但是在重啟后它裝載了錯(cuò)誤的服務(wù)器配置,導(dǎo)致設(shè)備只能利用單個(gè)核心運(yùn)轉(zhuǎn)(不幸的是我們直到周日才發(fā)現(xiàn)這一問(wèn)題的根源)并錯(cuò)誤地代理了IP地址。一開始,運(yùn)維團(tuán)隊(duì)錯(cuò)誤地認(rèn)為這只是更新后大量涌入的玩家造成的一般服務(wù)器過(guò)載——對(duì)于一個(gè)擁有諸多新載具乃至全新國(guó)家科技樹的主要版本更新所能激起的玩家熱度而言,這一推測(cè)是合理的。因此我們決定租用亞馬遜最昂貴和強(qiáng)勁的服務(wù)器,并將游戲遷移至這些設(shè)備上以提升服務(wù)器載荷能力。游戲服務(wù)的遷移當(dāng)然不會(huì)在轉(zhuǎn)瞬之間完成;但即使是轉(zhuǎn)移完成之后,由于網(wǎng)關(guān)設(shè)備配置錯(cuò)誤與單線程運(yùn)行的問(wèn)題仍未得到解決,在此期間服務(wù)器持續(xù)認(rèn)為藉由該網(wǎng)關(guān)設(shè)備訪問(wèn)游戲服務(wù)的玩家均來(lái)自同一 IP 地址,因此服務(wù)器無(wú)法快速分辨不同玩家的訪問(wèn)請(qǐng)求,而大量來(lái)自同一 IP 地址的重復(fù)請(qǐng)求更是耗干了服務(wù)器的最后性能。運(yùn)維團(tuán)隊(duì)最終在北京時(shí)間約 17:00 時(shí)發(fā)現(xiàn)了問(wèn)題的源頭所在并最終解決了技術(shù)問(wèn)題,使得游戲服務(wù)恢復(fù)正常。而之后凌晨時(shí)分游戲恢復(fù)正常運(yùn)作的假象則是夜間玩家數(shù)量相對(duì)較少,單個(gè)網(wǎng)關(guān)設(shè)備以單線程運(yùn)作導(dǎo)致的服務(wù)器載荷問(wèn)題尚不足以影響大部分玩家的游戲體驗(yàn)所致。
隨著周日玩家數(shù)量不斷升高,創(chuàng)建的對(duì)戰(zhàn)數(shù)量也隨之增多,服務(wù)器載荷也再度升高。不過(guò)我們終于發(fā)現(xiàn)了第二處配置錯(cuò)誤的問(wèn)題所在,并花費(fèi)了一整個(gè)下午的時(shí)間將游戲服務(wù)自有問(wèn)題的設(shè)備平穩(wěn)遷移至新的設(shè)備——這一措施是為了防止對(duì)戰(zhàn)局中的玩家們?cè)斐捎绊?,而這一系列遷移工作當(dāng)然也需要不少時(shí)間。我們想要特別指出的是,即便是斥資購(gòu)買亞馬遜網(wǎng)絡(luò)服務(wù)升級(jí)服務(wù)器承載能力之前,既有服務(wù)器的載荷能力也完全堪用——而在升級(jí)網(wǎng)絡(luò)服務(wù)后我們也只用到服務(wù)器總承載能力的 6% 而已(也就是說(shuō),即便在巔峰時(shí)段服務(wù)器也有已用載荷的 20 倍左右的算力作為儲(chǔ)備)。
總結(jié)
開發(fā)團(tuán)隊(duì)對(duì)于本次服務(wù)器波動(dòng)期間的一系列經(jīng)驗(yàn)做出總結(jié),并將對(duì)戰(zhàn)與匹配機(jī)制的代碼優(yōu)化列入計(jì)劃當(dāng)中。首先,我們計(jì)劃未來(lái)對(duì)所有的服務(wù)器進(jìn)行交替重新啟動(dòng)以仔細(xì)檢查設(shè)備的容錯(cuò)機(jī)制,還計(jì)劃利用維護(hù)其他大型流媒體設(shè)備的經(jīng)驗(yàn),設(shè)立專門的機(jī)器人檢查每臺(tái)設(shè)備的連續(xù)運(yùn)行時(shí)間。
我們已經(jīng)對(duì)當(dāng)前的匹配機(jī)制代碼進(jìn)行了優(yōu)化,使得即使在相對(duì)較重的服務(wù)器負(fù)荷下游戲的運(yùn)行表現(xiàn)也能保持在可接受范圍內(nèi)——這一情況下排隊(duì)時(shí)間也許會(huì)略有延長(zhǎng),但服務(wù)器將持續(xù)回應(yīng)玩家的訪問(wèn)請(qǐng)求從而保持整套系統(tǒng)正常運(yùn)作。
此外,游戲內(nèi)國(guó)家陣營(yíng)的增多意味著可能出現(xiàn)的對(duì)戰(zhàn)陣營(yíng)組合已經(jīng)達(dá)到了相當(dāng)大的數(shù)目,相關(guān)算法的進(jìn)一步優(yōu)化已不可避免。而對(duì)使用不同國(guó)家載具的所有玩家進(jìn)行匹配更是復(fù)雜到了極點(diǎn),因此未來(lái)有必要對(duì)相關(guān)機(jī)制進(jìn)行優(yōu)化,在機(jī)制容許范圍內(nèi)盡可能做到最好。
更多好消息:在北京時(shí)間 11 月 4 日 19:00 至 11 月 8 日 19:00 期間登錄游戲即可獲得持續(xù) 5 場(chǎng)戰(zhàn)局有效的 +30% 研發(fā)點(diǎn)的高級(jí)加成卡!
本文授權(quán)自
warthunder.com/zh

War Thunder 團(tuán)隊(duì) & WT 情報(bào)組