[黎偉健 焦容 王鋼]
移動(dòng)云盤是重資產(chǎn)業(yè)務(wù),消耗大量服務(wù)器、存儲(chǔ)等資源。隨著業(yè)務(wù)的發(fā)展,需要對(duì)移動(dòng)云盤用戶節(jié)點(diǎn)進(jìn)行持續(xù)擴(kuò)容。如何科學(xué)評(píng)估用戶節(jié)點(diǎn)擴(kuò)容時(shí)所需的服務(wù)器數(shù)量,使得擴(kuò)容工作既能滿足業(yè)務(wù)需求,又能最大程度的節(jié)約成本,是一個(gè)重要的課題。本文建立了移動(dòng)云盤用戶數(shù)與服務(wù)器數(shù)量的數(shù)學(xué)模型,并據(jù)此評(píng)估擴(kuò)容所需服務(wù)器數(shù)量。
以移動(dòng)云盤用戶節(jié)點(diǎn)容量某次擴(kuò)容的案例為例說(shuō)明所需資源的評(píng)估方法。移動(dòng)云盤用戶節(jié)點(diǎn)可支撐3 000 萬(wàn)月活用戶,希望擴(kuò)容至5 000 萬(wàn)月活用戶。月活用戶指移動(dòng)云盤的安卓端、IOS 端、PC 端、TV 端等各端的每月活躍總數(shù),當(dāng)月某用戶在多個(gè)端多次活躍,按活躍一次計(jì)算。用戶節(jié)點(diǎn)共有用戶登錄鑒權(quán)服務(wù)(AAS)、對(duì)外服務(wù)接口服務(wù)(OSE)、定制業(yè)務(wù)包服務(wù)(SAES)、用戶管理和套餐管理服務(wù)(BMP)、網(wǎng)盤業(yè)務(wù)接口服務(wù)(NDA)、NDMC 等6 個(gè)模塊,需要評(píng)估每個(gè)模塊各擴(kuò)容多少臺(tái)服務(wù)器。
凱西·施瓦爾貝[1]說(shuō)明了帕累托法則的概念,帕累托法則也叫20/80 法則,20%的因素帶來(lái)80%的影響。實(shí)踐表明,互聯(lián)網(wǎng)產(chǎn)品的資源消耗也遵循20/80 法則,也就是說(shuō)20%的場(chǎng)景消耗80%的性能?;ヂ?lián)網(wǎng)產(chǎn)品的場(chǎng)景很多,對(duì)每個(gè)場(chǎng)景都做詳細(xì)的資源測(cè)算,是一件十分復(fù)雜且低效的工作。因此識(shí)別出產(chǎn)品的20%關(guān)鍵場(chǎng)景后,就可評(píng)估整個(gè)系統(tǒng)的容量。
顧炯炯[2]提出了云計(jì)算系統(tǒng)的總體性能評(píng)價(jià)維度,包括I/O 吞吐性能、CPU 利用率等。根據(jù)移動(dòng)云盤的實(shí)踐,網(wǎng)盤類互聯(lián)網(wǎng)產(chǎn)品的性能則主要通過(guò)接口時(shí)延和事務(wù)處理能力(TPS)兩項(xiàng)指標(biāo)來(lái)度量。接口時(shí)延是指一個(gè)請(qǐng)求的平均響應(yīng)時(shí)間最長(zhǎng)多少是可接受的,事務(wù)處理能力是指在接口時(shí)延可接受的情況下,系統(tǒng)每秒最大能處理多少事務(wù)。網(wǎng)盤類產(chǎn)品的大多數(shù)服務(wù)器都是CPU 類型,CPU 利用率是主要的資源指標(biāo)。根據(jù)經(jīng)驗(yàn)值,一般CPU 利用率達(dá)到50%左右,即表示到達(dá)系統(tǒng)的性能消耗上限,需要擴(kuò)容。因此,依據(jù)接口吞吐量(TPS)和接口時(shí)延,在CPU 消耗50%基礎(chǔ)下,可以計(jì)算資源消耗,從而得到系統(tǒng)容量。
2.2.1 關(guān)鍵接口識(shí)別
每個(gè)模塊都可以用20/80 法則識(shí)別出關(guān)鍵接口。以移動(dòng)云盤用戶節(jié)點(diǎn)的AAS 模塊為例,說(shuō)明如何識(shí)別關(guān)鍵接口。AAS 模塊有29 臺(tái)16C64G 的虛擬機(jī),有11 個(gè)接口。某天平均每臺(tái)服務(wù)器最大TPS 取某天每臺(tái)服務(wù)器的最大平均TPS 值,每分鐘進(jìn)行一次采樣。如表1 所示。
表1 AAS 所有接口的TPS
根據(jù)某天最大TPS 確定前20%的接口,即選取2 個(gè)接口。thirdlogin 與querySpecToken 兩個(gè)接口為關(guān)鍵接口。
2.2.2 現(xiàn)網(wǎng)消耗算力
(1)關(guān)鍵接口性能指標(biāo)
AAS 模塊的thirdlogin 與querySpecToken 兩個(gè)接口的業(yè)務(wù)性能指標(biāo)如表2 所示。
表2 AAS 模塊的關(guān)鍵接口性能
最大平均TPS 指某天AAS 接口全部29 臺(tái)服務(wù)器的最大TPS 值,最大平均TPS=表1 的某天平均每臺(tái)服務(wù)器最大TPS*29。移動(dòng)云盤業(yè)務(wù)每天上午9 時(shí)-11 時(shí)為業(yè)務(wù)量最大的時(shí)間段,因此忙時(shí)平均時(shí)延指移動(dòng)云盤業(yè)務(wù)某天這個(gè)時(shí)間段的接口訪問(wèn)平均時(shí)延。
移動(dòng)云盤用戶節(jié)點(diǎn)AAS 集群有29 臺(tái)服務(wù)器,現(xiàn)網(wǎng)CPU 平均利用率為29.6%。移動(dòng)云盤用戶節(jié)點(diǎn)可支撐3 000萬(wàn)活躍用戶,以每臺(tái)主機(jī)CPU 利用率50%為性能上限,計(jì)算出整個(gè)AAS 集群的目標(biāo)集群算力,計(jì)算過(guò)程如下:
①現(xiàn)網(wǎng)TOP20%接口消耗算力
thirdlogin 接口最大平均TPS * 最大平均時(shí)延+querySpecToken 接口最大平均TPS * 最大平均時(shí)延=522*569+87*32=299 802
② 每臺(tái)服務(wù)器算力值
每臺(tái)服務(wù)器算力值=現(xiàn)網(wǎng)消耗算力/服務(wù)器臺(tái)數(shù)=299 802/29=10 338
③現(xiàn)網(wǎng)最大算力
如上所述,CPU 利用率50%表示達(dá)到性能極限,現(xiàn)網(wǎng)CPU 平均利用率只有29.6%,因此現(xiàn)網(wǎng)最大算力為:現(xiàn)網(wǎng)最大算力=集群已使用算力*50%/CPU 峰值利用率=299 802*50%/29.6%=506 422
2.2.3 擴(kuò)容方案
如前所述,移動(dòng)云盤用戶節(jié)點(diǎn)從3 000 萬(wàn)月活用戶擴(kuò)容至5 000 萬(wàn)月活用戶,需要擴(kuò)容多少臺(tái)服務(wù)器,可按如下方法計(jì)算:
(1)目標(biāo)集群算力
目標(biāo)集群算力與目標(biāo)月活用戶數(shù)呈線性關(guān)系,且系統(tǒng)算力需要保留一定的冗余,冗余系數(shù)按90%計(jì)算。
目標(biāo)集群算力=現(xiàn)網(wǎng)消耗算力*(目標(biāo)活躍用戶數(shù)/當(dāng)前活躍用戶數(shù))/冗余系數(shù)=299 802*(5 000/3 000)/90%=555 189
(2)需要擴(kuò)容的服務(wù)器數(shù)量
需要擴(kuò)容的服務(wù)器數(shù)量=(目標(biāo)集群算力-現(xiàn)網(wǎng)最大算力)/單臺(tái)服務(wù)器算力=(555 189-506422)/10 338=4.72≈5(向上取整)
因此月活用戶數(shù)從當(dāng)前的3 000 萬(wàn)增加到5 000 萬(wàn),移動(dòng)云盤用戶節(jié)點(diǎn)AAS 部件需要擴(kuò)容5 臺(tái)AAS 服務(wù)器。
參照AAS 模塊的評(píng)估方法,可以計(jì)算出OSE、BMP、NDA、NDMC、SAES 等其余五個(gè)模塊的容量從3 000萬(wàn)月活擴(kuò)容到5 000 萬(wàn)月活所需要的服務(wù)器臺(tái)數(shù)。這些模塊的TPS、接口時(shí)延、CPU 峰值利用率均不相同,但評(píng)估方法與AAS 模塊相同。用戶節(jié)點(diǎn)擴(kuò)容合計(jì)需要擴(kuò)容139臺(tái)服務(wù)器,如表3 所示。
表3 用戶節(jié)點(diǎn)擴(kuò)容資源需求
從公開(kāi)文獻(xiàn)看,幾乎查不到網(wǎng)盤類互聯(lián)網(wǎng)產(chǎn)品的容量評(píng)估方法,但可以查到一些其他類型的互聯(lián)網(wǎng)產(chǎn)品容量評(píng)估方法,例如滴滴內(nèi)部某業(yè)務(wù)根據(jù)CPU 利用率與業(yè)務(wù)流量的關(guān)系,預(yù)估業(yè)務(wù)流量增長(zhǎng)時(shí)需要增加的服務(wù)器臺(tái)數(shù),系統(tǒng)性能衡量指標(biāo)相對(duì)單一。本文提出了網(wǎng)盤類產(chǎn)品的資源評(píng)估方法,引入了接口時(shí)延、事務(wù)處理能力(TPS)、CPU 利用率等復(fù)合性能指標(biāo)進(jìn)行容量評(píng)估,經(jīng)過(guò)了多次實(shí)踐驗(yàn)證,效果良好。
本文給出了移動(dòng)云盤的系統(tǒng)容量的評(píng)估方法。經(jīng)過(guò)移動(dòng)云盤用戶節(jié)點(diǎn)多次擴(kuò)容檢驗(yàn),通過(guò)該評(píng)估方法評(píng)估出的擴(kuò)容方案,確實(shí)能達(dá)到預(yù)期容量值,對(duì)網(wǎng)盤類業(yè)務(wù)甚至互聯(lián)網(wǎng)業(yè)務(wù)的系統(tǒng)容量評(píng)估方法都有較強(qiáng)的借鑒意義。
隨著用戶行為的變化以及移動(dòng)云盤技術(shù)的發(fā)展,系統(tǒng)容量的評(píng)估方法需要不斷迭代,因此不能一成不變的照搬該評(píng)估方法,而是與時(shí)俱進(jìn)的進(jìn)行優(yōu)化。