了解金山云最新資訊
2023-10-11 00:00:00
企業(yè)中一般存在「在線服務(wù)」和「離線任務(wù)」兩種類型工作負(fù)載。在降本增效的大背景下,如何通過(guò)技術(shù)為不同業(yè)務(wù)完成較為精準(zhǔn)的資源配置成為企業(yè)制勝的法寶。然而,這并非一蹴而就,需要不斷的探索和實(shí)踐。
知乎在采用金山云在離線混部解決方案Colocation(以下簡(jiǎn)稱“Colo”)前,就已嘗試多種優(yōu)化IT資源成本的方法,例如根據(jù)數(shù)據(jù)指標(biāo)手動(dòng)或自動(dòng)降低服務(wù)資源配置、潮汐調(diào)度等,直到選擇混部方案后,知乎才實(shí)現(xiàn)了更精確化的管理調(diào)度、更合理的資源隔離,以及更高效的運(yùn)維效率。
本文將對(duì)知乎早期優(yōu)化路徑進(jìn)行簡(jiǎn)要分析,并將重點(diǎn)置于Colo在知乎大數(shù)據(jù)場(chǎng)景混部中的具體使用方式,以及該方案為知乎帶來(lái)的價(jià)值。
知乎采用混部前的成本優(yōu)化路徑
知乎的成本優(yōu)化路徑經(jīng)歷了早期和中期兩個(gè)階段,兩個(gè)階段的優(yōu)化在當(dāng)時(shí)背景下利用率有所提升,但最終都未能達(dá)到理想的效果。
早期階段:系統(tǒng)化資源利用提升
在進(jìn)行系統(tǒng)化資源利用提升前,需要通過(guò)建立的完善的數(shù)據(jù)指標(biāo)和應(yīng)用指標(biāo)系統(tǒng),通知業(yè)務(wù)方自動(dòng)或主動(dòng)降低資源配置。在早期資源利用率不合理的場(chǎng)景下,該方案是一種直接高效的資源優(yōu)化手段,但其屬于被動(dòng)式的處理手段,并不能做到資源的妥善配置。(如下圖)
中期階段:潮汐調(diào)度
與離線任務(wù)相比,在線業(yè)務(wù)具有明顯的波峰波谷,可利用潮汐調(diào)度來(lái)實(shí)現(xiàn)資源的優(yōu)化配置。利用K8s的VPA(Vertical Pod Autoscaler)、HPA(Horizontal Pod Autoscaler)組件,可在低峰和高峰時(shí)分別為工作負(fù)載進(jìn)行縮容和擴(kuò)容。同時(shí)利用K8s的CA調(diào)度器(Cluster Autoscaler)實(shí)現(xiàn)基于pod的擴(kuò)縮,而在集群容量不足時(shí)擴(kuò)容新的node節(jié)點(diǎn)。(如下圖)
存在的問(wèn)題
盡管以上兩個(gè)階段均在一定程度上提升了資源利用率,但在這兩個(gè)階段中知乎離線集群與在線集群完全獨(dú)立不互通,離線集群和在線集群的資源利用率均存在明顯的周期性波動(dòng),具有明顯的潮汐效應(yīng)。
離線集群在凌晨0點(diǎn)至8點(diǎn)之間的資源利用率達(dá)到95%以上,處于滿負(fù)荷運(yùn)行狀態(tài),而在線集群同期內(nèi)的資源利用率會(huì)下降至30%以下。這種周期性變化使得離線集群凌晨資源存在短缺,在線集群資源利用率嚴(yán)重不足,集群整體平均利用率在27%-30%左右。
現(xiàn)階段知乎大數(shù)據(jù)場(chǎng)景采用Colo實(shí)現(xiàn)在離線業(yè)務(wù)混部后
現(xiàn)階段,知乎大數(shù)據(jù)場(chǎng)景多集群打通了在線集群與離線集群的互聯(lián)互通。離線任務(wù)調(diào)度平臺(tái)提交任務(wù)到Y(jié)ARN Federation中的YARN Router節(jié)點(diǎn),Router節(jié)點(diǎn)連接決策服務(wù),決策服務(wù)依據(jù)任務(wù)畫(huà)像和其他邊界條件確定的規(guī)則,最終將符合規(guī)則的低優(yōu)離線任務(wù)運(yùn)行至在線集群中,實(shí)現(xiàn)在離線混部調(diào)度。(如下圖)
知乎大數(shù)據(jù)場(chǎng)景低優(yōu)離線任務(wù)調(diào)度至在線集群后,在線集群中在離線業(yè)務(wù)的混部通過(guò)Colo管理與調(diào)度,Colo通過(guò)調(diào)度與重調(diào)度能力、CPU/Memory/BLKIO/網(wǎng)絡(luò)帶寬等資源隔離及資源動(dòng)態(tài)調(diào)整壓制、資源沖突檢測(cè)與處理、實(shí)際負(fù)載感知調(diào)度能力、eBPF關(guān)鍵內(nèi)核指標(biāo)的采集和利用等關(guān)鍵技術(shù),保證了在離線混部節(jié)點(diǎn)間均衡調(diào)度、節(jié)點(diǎn)不過(guò)載、在線服務(wù)穩(wěn)定性、敏感型業(yè)務(wù)不受干擾、離線資源及時(shí)回收等問(wèn)題。Colo通過(guò)Colo-manager、Colo-scheduler、Colo-Descheduler、cololet等組件,采取削峰填谷的方式,提高在線集群資源利用率,降低離線集群在夜間的超負(fù)荷運(yùn)轉(zhuǎn)狀況,實(shí)現(xiàn)服務(wù)器資源利用率大幅提升,從而減少了企業(yè)IT開(kāi)支。(Colo架構(gòu)如下圖)
Colo在知乎大數(shù)據(jù)場(chǎng)景混部中的具體使用方式
使用Colo調(diào)度系統(tǒng)進(jìn)行在離線業(yè)務(wù)混部時(shí),根據(jù)不同業(yè)務(wù)場(chǎng)景可通過(guò)配置Colo的Priority(優(yōu)先級(jí))與QoS(服務(wù)質(zhì)量)的關(guān)鍵字段字段進(jìn)行部署。在知乎大數(shù)據(jù)場(chǎng)景混部的應(yīng)用中,Colo將業(yè)務(wù)做多個(gè)分級(jí),優(yōu)先保障高級(jí)別業(yè)務(wù)。具體如下:
數(shù)據(jù)庫(kù)/消息隊(duì)列等中間件服務(wù)
單獨(dú)處理,不參與混部。
LSR類(Priority:colo-prod + QoS:LSR)
知乎較高敏感型在線服務(wù),可以接受犧牲資源彈性而換取更好的確定性(如CPU綁核),對(duì)應(yīng)用時(shí)延要求極高。QOS對(duì)應(yīng)Guarantee。
LS類(Priority:colo-prod + QoS:LS)
知乎典型的在線服務(wù),通常對(duì)應(yīng)用的延遲、資源質(zhì)量要求較高,運(yùn)行時(shí)間較長(zhǎng),也需要保證一定的資源彈性能力。QOS對(duì)應(yīng)Burstable。
BE類(Priority:colo-batch + QoS:BE)
知乎混部場(chǎng)景中的低優(yōu)離線任務(wù),通常表現(xiàn)為對(duì)資源質(zhì)量有相當(dāng)?shù)娜棠投?,?duì)延遲不敏感,運(yùn)行時(shí)間相對(duì)較短。QOS對(duì)應(yīng)BestEffort。
知乎大數(shù)據(jù)場(chǎng)景混部方案Colo的落地價(jià)值
在離線混部方案Colo已在知乎大數(shù)據(jù)場(chǎng)景下完成大規(guī)模核心業(yè)務(wù)落地,部署節(jié)點(diǎn)數(shù)量超過(guò)3000多個(gè)。不僅實(shí)現(xiàn)了知乎多個(gè)集群全天資源利用率均值的大幅提升,白天實(shí)時(shí)利用率也保持在一個(gè)較高的水平,且服務(wù)器節(jié)點(diǎn)之間的負(fù)載均衡也得到了明顯改善。