應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊(cè)個(gè)人注冊(cè)登錄

“硬核”抗干擾,英特爾助力實(shí)現(xiàn)微博在離線混部業(yè)務(wù)優(yōu)化實(shí)踐

2022-12-20 11:28 英特爾

導(dǎo)讀:長(zhǎng)期以來(lái),對(duì)于擁有成千上萬(wàn)臺(tái)服務(wù)器的互聯(lián)網(wǎng)各大廠商而言,如何提升服務(wù)器資源利用率,降低IT基礎(chǔ)設(shè)施的TCO(總擁有成本)成為數(shù)據(jù)中心集群建設(shè)的重要問(wèn)題。

長(zhǎng)期以來(lái),對(duì)于擁有成千上萬(wàn)臺(tái)服務(wù)器的互聯(lián)網(wǎng)各大廠商而言,如何提升服務(wù)器資源利用率,降低IT基礎(chǔ)設(shè)施的TCO(總擁有成本)成為數(shù)據(jù)中心集群建設(shè)的重要問(wèn)題。Gartner調(diào)研數(shù)據(jù)顯示全球數(shù)據(jù)中心服務(wù)器CPU利用率只有6%~12%。這是因?yàn)槠髽I(yè)往往為在線業(yè)務(wù)預(yù)留大量的服務(wù)器資源以保證其服務(wù)質(zhì)量。與此同時(shí)隨著數(shù)據(jù)分析和人工智能訓(xùn)練的大規(guī)模應(yīng)用,離線業(yè)務(wù)對(duì)計(jì)算資源的需求又在日益增長(zhǎng)?;诖?在保障在線作業(yè)性能的前提下,將在線集群的空閑資源分配給離線作業(yè)成為提升數(shù)據(jù)中心整體資源利用率的理想方法。如今,在離線混部方案成為各大互聯(lián)網(wǎng)公司提升服務(wù)器資源的有效集群方案。

在離線混部方案,即將在線業(yè)務(wù)與離線業(yè)務(wù)混合部署到統(tǒng)一的物理集群上,通過(guò)資源隔離、調(diào)度等控制手段,充分利用集群資源,在保證服務(wù)穩(wěn)定的同時(shí)提升數(shù)據(jù)中心的資源利用率。以微博為例,基于Kubernetes和HadoopYARN構(gòu)建的在離線混部方案,充分發(fā)揮英特爾至強(qiáng)可擴(kuò)展處理器集成的英特爾資源調(diào)配技術(shù) (英特爾RDT)和英特爾Speed Select 技術(shù)(英特爾SST),實(shí)現(xiàn)了大幅度提升CPU利用率的同時(shí)保證了大規(guī)模業(yè)務(wù)服務(wù)的落地。

在線業(yè)務(wù)和離線業(yè)務(wù)現(xiàn)狀和挑戰(zhàn)

微博將混部概念的應(yīng)用類型分為在線業(yè)務(wù)和離線業(yè)務(wù)兩種。在線和離線業(yè)務(wù)如何劃分?微博認(rèn)為在線業(yè)務(wù)特點(diǎn)包括但不限于:任務(wù)運(yùn)行時(shí)間長(zhǎng),響應(yīng)延時(shí)敏感高,對(duì)穩(wěn)定向要求較高,對(duì)服務(wù)質(zhì)量要求高,服務(wù)不穩(wěn)定業(yè)務(wù)會(huì)立馬感知并且?guī)?lái)?yè)p失,比如廣告搜索業(yè)務(wù)、網(wǎng)頁(yè)搜索、即時(shí)通信等;而離線業(yè)務(wù)的特點(diǎn)包括但不限于非延時(shí)敏感,可重試,運(yùn)行時(shí)間較短在幾十分鐘左右,一般為大數(shù)據(jù)處理、分析、機(jī)器學(xué)習(xí)訓(xùn)練作業(yè)等服務(wù)。

從微博業(yè)務(wù)的特征可以看到,在線業(yè)務(wù)資源平均利用率不高,離線業(yè)務(wù)資源不夠用等特征,通過(guò)整合方案實(shí)現(xiàn)時(shí)間和資源上的互補(bǔ),既要保證服務(wù)質(zhì)量,又可以提高集群的資源的利用率,降低TCO。

如何通過(guò)填充離線作業(yè)把集群各個(gè)時(shí)段的在線空閑資源利用起來(lái)?微博結(jié)合實(shí)際業(yè)務(wù)通過(guò)通過(guò)在線業(yè)務(wù)容器化,并把部分離線作業(yè)部署在在線的統(tǒng)一資源池節(jié)點(diǎn)上,通過(guò)充分利用英特爾至強(qiáng)可擴(kuò)展處理器為核心的服務(wù)器資源,達(dá)到了提升資源利用率的目的。

微博通過(guò)Hadoop作業(yè)通過(guò)YARN提交,k8s作業(yè)通過(guò)APIServer提交,實(shí)現(xiàn)業(yè)務(wù)方無(wú)感知的離線混部方案,通過(guò)ApplicationMaster管控Hadoop節(jié)點(diǎn)和混部節(jié)點(diǎn)中的離線任務(wù),混部節(jié)點(diǎn)中部署的NodeManager以及Kubelet,分別用于離線服務(wù)和在線服務(wù)的管控。

保證在線業(yè)務(wù)的質(zhì)量保證(QoS),防止受到離線作業(yè)干擾

在現(xiàn)實(shí)場(chǎng)景中,在線業(yè)務(wù)和離線業(yè)務(wù)訴求不同決定了資源需求和性能敏感度的異同。在線機(jī)房關(guān)注業(yè)務(wù)聚集的是用戶體驗(yàn)、訪問(wèn)速度,而離線業(yè)務(wù)更關(guān)注的是計(jì)算、存儲(chǔ)基礎(chǔ)設(shè)施的規(guī)模。比如在線業(yè)務(wù)中的微博熱點(diǎn)實(shí)時(shí)新聞的進(jìn)程就需要優(yōu)先推送,背后運(yùn)行的一些進(jìn)程不同,對(duì)CPU等關(guān)鍵資源的依賴性就有所不同。

如果在離線業(yè)務(wù)不做隔離,這樣多種作業(yè)要競(jìng)爭(zhēng)共享資源(如CPU、緩存、內(nèi)存、內(nèi)存帶寬、網(wǎng)絡(luò)帶寬),比如在混合部署環(huán)境中,宿主機(jī)的資源(包括CPUcache和內(nèi)存帶寬)都是共享的。但是如果有一個(gè)消耗cache的應(yīng)用快速消耗了L3緩存,或者一個(gè)應(yīng)用消耗了系統(tǒng)大量?jī)?nèi)存帶寬,就會(huì)因競(jìng)爭(zhēng)L3緩存資源而引起的性能干擾,增加了在離線混部作業(yè)性能預(yù)測(cè)的難度。那么如何保證其他虛擬機(jī)應(yīng)用呢?如何限制這些“可惡”的鄰居呢?

針對(duì)上訴問(wèn)題,以前都是通過(guò)控制虛擬機(jī)邏輯資源來(lái)實(shí)現(xiàn),通過(guò)虛擬層對(duì)于混部作業(yè)調(diào)度和資源管理的顆粒度還是太粗,針對(duì)處理器緩存這樣敏感而稀缺的資源,幾乎是無(wú)能為力的。

對(duì)于微博而言,微博基于混部節(jié)點(diǎn)隔離技術(shù)來(lái)實(shí)現(xiàn)業(yè)務(wù)之間的防干擾。資源隔離技術(shù)分為操作系統(tǒng)層的資源隔離技術(shù)和硬件層的資源隔離技術(shù)。微博的混部系統(tǒng)實(shí)例就采用了軟件資源隔方案,通過(guò)占用資源少、部署快的容器技術(shù)結(jié)合CPU內(nèi)置的調(diào)配能力來(lái)實(shí)現(xiàn)資源的隔離、監(jiān)控和管理。不僅通過(guò)多個(gè)進(jìn)程并發(fā)的執(zhí)行,來(lái)提高了CPU的利用率,還基于CPU更細(xì)粒度的資源調(diào)度和資源管理能力,來(lái)減少在離線作業(yè)的相互干擾下,保證更好的實(shí)現(xiàn)在線業(yè)務(wù)的質(zhì)量同時(shí),加速離線業(yè)務(wù)的運(yùn)行。

打造硬件級(jí)別的抗干擾機(jī)制是提高資源利用率的核心能力

英特爾至強(qiáng)可擴(kuò)展處理器作為最重要的計(jì)算資源,提供了硬件級(jí)別的細(xì)粒度抗干擾機(jī)制,實(shí)現(xiàn)了不同的資源調(diào)度機(jī)制使得作業(yè)在運(yùn)行時(shí)具有不同的抗干擾性。比如英特爾資源調(diào)配技術(shù) (英特爾RDT)和英特爾Speed Select 技術(shù)(英特爾SST),通過(guò)對(duì)CPU性能的細(xì)粒度控制和緩存調(diào)度功能來(lái)更好的實(shí)現(xiàn)分時(shí)共享或搶占式調(diào)度,從而提升了由隔離和控制緩存資源引起的性能干擾。

在動(dòng)態(tài)環(huán)境中釋放系統(tǒng)性能

英特爾資源調(diào)配技術(shù) (英特爾RDT) 使得應(yīng)用程序、虛擬機(jī) (VM)和容器使用共享資源(例如最新級(jí)別高速緩存 (LLC)和內(nèi)存帶寬)的方式的可見(jiàn)性和可控性達(dá)到全新水平。它使工作負(fù)載整合密度、性能穩(wěn)定性以及動(dòng)態(tài)服務(wù)交付有了革命性飛躍,有助于提升整個(gè)數(shù)據(jù)中心的效率和靈活性,并全面降低總擁有成本(TCO)。隨著軟件定義的基礎(chǔ)設(shè)施和先進(jìn)的資源感知型編排技術(shù)不斷推動(dòng)行業(yè)變革,英特爾RDT 成了優(yōu)化應(yīng)用程序性能的關(guān)鍵功能,并增強(qiáng)了使用英特爾至強(qiáng)處理器的服務(wù)器系統(tǒng)編排和虛擬化管理的功能。

英特爾RDT 提供了一個(gè)由多個(gè)組件功能(包括 CMT、CAT、CDP、MBM和MBA)組成的框架,用于緩存和內(nèi)存監(jiān)控及分配功能。這些技術(shù)可以跟蹤和控制平臺(tái)上同時(shí)運(yùn)行的多個(gè)應(yīng)用程序、容器或VM 使用的共享資源,例如最后一級(jí)緩存(LLC) 和主內(nèi)存(DRAM) 帶寬。RDT可以幫助檢測(cè)“吵鬧的鄰居”并減少性能干擾,從而確保復(fù)雜環(huán)境中關(guān)鍵工作負(fù)載的性能。

這5個(gè)功能模塊分為監(jiān)控和控制兩大類,CMT和MBM為監(jiān)控技術(shù),而CAT、MBA和CDP為控制技術(shù)。具體而言:

高速緩存監(jiān)控技術(shù)(CMT)

借助監(jiān)控單個(gè)線程、應(yīng)用程序或 VM對(duì)最后一級(jí)緩存 (LLC)的利用率所獲得的新洞察,CMT改進(jìn)了工作負(fù)載表征,實(shí)現(xiàn)了先進(jìn)的資源感知型調(diào)度決策,能幫助檢測(cè)“吵鬧的鄰居”,并改進(jìn)性能調(diào)試。

內(nèi)存帶寬監(jiān)控(MBM)

內(nèi)存帶寬監(jiān)控 (MBM)可以獨(dú)立跟蹤多臺(tái)虛擬機(jī)或多個(gè)應(yīng)用程序,同時(shí)對(duì)每個(gè)運(yùn)行線程進(jìn)行內(nèi)存帶寬監(jiān)控。優(yōu)點(diǎn)包括:對(duì)“吵鬧的鄰居”的檢測(cè),對(duì)帶寬敏感型應(yīng)用程序的性能界定和調(diào)試的檢測(cè),以及對(duì)更高效的非一致性內(nèi)存訪問(wèn)(NUMA) 感知型調(diào)度的檢測(cè)。

高速緩存分配技術(shù)(CAT)

CAT支持軟件引導(dǎo)的緩存容量重新分配,使重要的數(shù)據(jù)中心VM、容器或應(yīng)用程序能夠從提升緩存容量和減少緩存爭(zhēng)用中受益。CAT可用于增強(qiáng)運(yùn)行時(shí)確定性,并且在各種優(yōu)先級(jí)工作負(fù)載的資源爭(zhēng)用中優(yōu)先考慮重要的應(yīng)用程序,如虛擬交換機(jī)或數(shù)據(jù)平面開(kāi)發(fā)套件(DPDK) 數(shù)據(jù)包處理應(yīng)用程序。

代碼和數(shù)據(jù)優(yōu)先級(jí)(CDP)

代碼和數(shù)據(jù)優(yōu)先級(jí) (CDP)作為 CAT的專用擴(kuò)展,實(shí)現(xiàn)了對(duì)最新級(jí)別 (L3)高速緩存中代碼和數(shù)據(jù)放置的獨(dú)立控制。某些特殊類型的工作負(fù)載可從增加的運(yùn)行時(shí)決策中受益,從而提高應(yīng)用程序性能的可預(yù)測(cè)性。

內(nèi)存寬帶分配(MBA)

MBA可對(duì)工作負(fù)載可用的內(nèi)存寬帶進(jìn)行近似和間接控制,從而為系統(tǒng)中存在的“吵鬧的鄰居”提供全新水平的干擾抑制和帶寬整形。

歡迎進(jìn)入細(xì)粒度控制時(shí)代

細(xì)粒度對(duì)于混部作業(yè)調(diào)度和資源管理具有重要意義,細(xì)粒度能夠更好的規(guī)劃不同作業(yè)階段與階段之間的有序混部運(yùn)行,減少資源競(jìng)爭(zhēng),降低性能干擾,對(duì)于混部資源管理,基于細(xì)粒度可以設(shè)計(jì)更為精細(xì)的資源動(dòng)態(tài)算法,合理利用作業(yè)運(yùn)行期間的碎片資源,進(jìn)一步提高資源利用率。英特爾Speed Select 技術(shù)(英特爾SST)包含的一組強(qiáng)大的全新功能,幫助CPU性能進(jìn)行細(xì)粒度控制,從而優(yōu)化總擁有成本。

如今,微博已完成在離線混部節(jié)點(diǎn)規(guī)模達(dá)到上千臺(tái),為離線任務(wù)提供數(shù)萬(wàn)個(gè)VCore的計(jì)算能力,通過(guò)在離線混部方案實(shí)現(xiàn)了極致的彈性調(diào)度,助力微博在熱點(diǎn)事件/高峰的業(yè)務(wù)場(chǎng)景下,k8s節(jié)點(diǎn)彈性擴(kuò)容離線集群的能力,在調(diào)度方面,通過(guò)更有計(jì)劃的調(diào)度,實(shí)現(xiàn)了資源畫的精細(xì)化,可以更精準(zhǔn)的預(yù)測(cè)熱點(diǎn)概率,優(yōu)化調(diào)度能力,減少熱點(diǎn)率。

在檢測(cè)沖突和資源隔離方面,基于英特爾RDT、CPUQoS以及相關(guān)的隔離、調(diào)度等技術(shù),實(shí)現(xiàn)了對(duì)緩存空間,內(nèi)存帶寬等細(xì)粒度的管理,實(shí)現(xiàn)了更好的檢測(cè)沖突和資源隔離,并根據(jù)業(yè)務(wù)來(lái)分配真實(shí)的CPU資源的能力。不僅平均CPU利用率從25%以下,提升到60%以上,而且在線服務(wù)的指標(biāo)影響范圍可控下,離線任務(wù)也實(shí)現(xiàn)了更快的運(yùn)行速度,從而支持更多的業(yè)務(wù)進(jìn)入在離線混部場(chǎng)景。