Amazon Graviton介紹
Amazon Graviton是亞馬遜云科技開(kāi)發(fā)的ARM架構(gòu)CPU處理器,與傳統(tǒng)的基于x86架構(gòu)的CPU相比,它具有以下幾個(gè)主要優(yōu)勢(shì):
-高性能
在Amaozn Graviton上,一個(gè)vCPU被映射到一個(gè)物理核心,并且沒(méi)有同步多線程(SMT),與基于x86的實(shí)例相比,基于Amazon Graviton的實(shí)例不會(huì)因資源爭(zhēng)用而出現(xiàn)性能下降。這使得在x86基礎(chǔ)實(shí)例上限制到一定CPU利用率的工作負(fù)載,可以在Amazon Graviton上推動(dòng)更高的CPU利用率,同時(shí)仍滿(mǎn)足業(yè)務(wù)的性能要求。
-低成本
Amazon Graviton實(shí)例的定價(jià)比同代x86實(shí)例更低,加上其性能提升,可以帶來(lái)更高的性?xún)r(jià)比。
-高可擴(kuò)展性
Amazon Graviton首先支持高性能網(wǎng)絡(luò)ENA Express和第二代EFA網(wǎng)絡(luò),提供更強(qiáng)的網(wǎng)絡(luò)擴(kuò)展能力。
目前亞馬遜云科技已經(jīng)推出了4代Amazon Graviton處理器,性能不斷提升。Amazon Graviton是亞馬遜云科技的差異化優(yōu)勢(shì)之一,提供了更先進(jìn)的技術(shù)選擇和卓越的性?xún)r(jià)比,可構(gòu)建高性能且經(jīng)濟(jì)實(shí)惠的云上系統(tǒng)。
FunPlus的Amazon Graviton遷移實(shí)踐
FunPlus的主要游戲產(chǎn)品包括《State of Survival》《King of Avalon》《Guns of Glory》均運(yùn)行在亞馬遜云科技的海外區(qū)域,技術(shù)團(tuán)隊(duì)成員有超過(guò)13年的亞馬遜云科技云服務(wù)使用經(jīng)驗(yàn)。從2020年,亞馬遜云科技開(kāi)始大規(guī)模推廣采用第二代Amazon Graviton處理器的Amazon EC2服務(wù)器開(kāi)始,F(xiàn)unPlus的技術(shù)團(tuán)隊(duì)便發(fā)現(xiàn)基于ARM架構(gòu)的Amazon Graviton EC2具有的性?xún)r(jià)比優(yōu)勢(shì),開(kāi)始在支持游戲運(yùn)行的技術(shù)中間件平臺(tái)中,逐步采用Amazon Graviton EC2,多年來(lái)在運(yùn)行穩(wěn)定的前提下,降低了FunPlus游戲運(yùn)營(yíng)的成本。
2024年,為了進(jìn)一步提升游戲服務(wù)器的性?xún)r(jià)比,F(xiàn)unPlus決定擴(kuò)大Amazon Graviton EC2的使用范圍,把主要游戲產(chǎn)品的游戲服也運(yùn)行在Amazon Graviton EC2上。游戲服的主要組件包括:戰(zhàn)斗服,地圖服,數(shù)據(jù)服務(wù),之前運(yùn)行在使用intel x 86 CPU的Amazon EC2 5系機(jī)型,需要遷移到Amazon Graviton EC2。
戰(zhàn)斗服遷移(PHP開(kāi)發(fā))
FunPlus SLG游戲的戰(zhàn)斗服采用PHP開(kāi)發(fā),在操作系統(tǒng)上安裝ARM版本的PHP即可。FunPlus原來(lái)使用的是CentOS 7系統(tǒng),隨著CentOS 7到達(dá)EOL,在遷移Amazon Graviton的過(guò)程中,同時(shí)也選擇了Amazon Linux作為運(yùn)行游戲服務(wù)器的操作系統(tǒng)。
我們對(duì)戰(zhàn)斗服進(jìn)行性能測(cè)試后發(fā)現(xiàn),采用Amazon Graviton2 EC2的戰(zhàn)斗服QPS處理能力相較x86架構(gòu)提升6%。
地圖服與數(shù)據(jù)服的遷移(Go語(yǔ)言開(kāi)發(fā))
地圖服(MapServer)與數(shù)據(jù)服(DataServer)均采用Go語(yǔ)言開(kāi)發(fā)。由于Go開(kāi)箱即用地支持arm64架構(gòu),只需使用Go compiler重新編譯即可,無(wú)需對(duì)地圖服的代碼本身做任何修改。根據(jù)亞馬遜云科技官方提供的數(shù)據(jù),Go 1.18版本對(duì)Amazon Graviton進(jìn)行了優(yōu)化,可獲得更好的性能。FunPlus也使用了Go 1.18版本運(yùn)行地圖服與數(shù)據(jù)服。
為了比較Go開(kāi)發(fā)的應(yīng)用程序在Amazon Graviton上的性能表現(xiàn),我們對(duì)數(shù)據(jù)服(DataServe)性能測(cè)試效果進(jìn)行了測(cè)試。
結(jié)論:從相同條件下多次壓測(cè)平均結(jié)果看,C6g主機(jī)承載的各類(lèi)QPS相較C5增加12%+。
DBProxy服務(wù)遷移(C++語(yǔ)言開(kāi)發(fā))
DBProxy是FunPlus技術(shù)中臺(tái)提供給各游戲業(yè)務(wù)用于訪問(wèn)MySQL數(shù)據(jù)庫(kù)的中間件,采用C++語(yǔ)言開(kāi)發(fā)。在Amazon Graviton上對(duì)代碼進(jìn)行重新編譯即可運(yùn)行,沒(méi)有對(duì)代碼進(jìn)行改動(dòng)。亞馬遜云科技官方建議使用最新版本的GCC對(duì)代碼進(jìn)行編譯,可以獲得更好的性能。FunPlus目前使用的Amazon Linux 2系統(tǒng)自帶的已經(jīng)對(duì)Amazon Graviton進(jìn)行過(guò)優(yōu)化的GCC 7編譯器。
業(yè)務(wù)成果
總的來(lái)說(shuō),通過(guò)大規(guī)模遷移游戲服到Amazon Graviton,幫助FunPlus降低了成本、提高性能,對(duì)于在亞馬遜云科技云上運(yùn)行工作負(fù)載并希望優(yōu)化基礎(chǔ)設(shè)施成本同時(shí)保持高性能的企業(yè)來(lái)說(shuō),Amazon Graviton是一個(gè)很好的選擇。
下一步,F(xiàn)unPlus會(huì)在更多業(yè)務(wù)場(chǎng)景上探索和擴(kuò)大Amazon Graviton的使用范圍,并測(cè)試亞馬遜云科技推出的第三代和第四代Amazon Graviton EC2,以期獲得更高的性?xún)r(jià)比。
關(guān)于FunPlus
FunPlus,中文名為趣加,是一家全球多元化的游戲研發(fā)、運(yùn)營(yíng)、發(fā)行品牌,2010年在美國(guó)硅谷創(chuàng)立,總部位于瑞士。FunPlus致力于為全球用戶(hù)提供創(chuàng)新的娛樂(lè)體驗(yàn)。多年來(lái),F(xiàn)unPlus成功研發(fā)并推出了眾多全球流行的移動(dòng)游戲產(chǎn)品,其主要代表產(chǎn)品包括《State of Survival》《阿瓦隆之王》《火器文明》等,憑借獨(dú)特的游戲體驗(yàn)、創(chuàng)新的游戲內(nèi)容和前衛(wèi)的玩法設(shè)置,贏得了玩家的認(rèn)可。
FunPlus旗下的工作室及項(xiàng)目團(tuán)隊(duì)?wèi){借多年來(lái)在游戲開(kāi)發(fā)中的技術(shù)積累和研發(fā)優(yōu)勢(shì),不斷拓展細(xì)分市場(chǎng)、持續(xù)進(jìn)行差異化創(chuàng)新,聚焦探索新型電子游戲產(chǎn)品和前沿生成式AI科技。推動(dòng)游戲研發(fā)領(lǐng)域的生產(chǎn)力變革,不斷提升游戲研發(fā)管道的自動(dòng)化、智能化和游戲的自適應(yīng)化。FunPlus吸引了來(lái)自全球各地、擁有不同文化背景的2000多名專(zhuān)業(yè)游戲人才,并在中國(guó)大陸、日本、新加坡、西班牙和美國(guó)等多個(gè)國(guó)家和地區(qū)的十余個(gè)城市設(shè)有辦事處。
參考資料
Graviton Technical Guide:https://github.com/aws/aws-graviton-getting-started