成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大型活動容量支撐速增10+倍,B站容量管理下的資源活化

數(shù)據(jù)庫 其他數(shù)據(jù)庫
容量周報分為部門周報和內部周報,業(yè)務部門更關注整體資源的用量以及資源使用率的變化。觀察這些數(shù)據(jù)能更好地感知容量效果。除了降本增效以外,業(yè)務還關注穩(wěn)定性,希望得知具體的風險應用有哪些,以及一周內哪些應用有怎樣的容量變化。

一、容量管理的設計理念

1、為什么要做容量管理?

1)容量風險未知

集群/資源池/Node容量水位缺乏可視化,穩(wěn)定性難以保證

隨著云原生和K8S普及,若沒有很好的容量管理,我們就無法感知整個集群、整個資源池以及Node容量的水位變化,也無法得知是否有必要采購資源,無法察覺整體的資源風險。

  • 容量變更根因難以追溯

有時我們在做一些發(fā)版或迭代時,會發(fā)現(xiàn)原本充足的資源突然出現(xiàn)緊缺。此時,若要查探容量何時變化或追溯變化的根因,存在一定難度,也比較復雜。

  • HPA覆蓋率低,業(yè)務穩(wěn)定性難以保障

B站有很多活動和突發(fā)流量,但由于HPA的覆蓋率比較低,業(yè)務容量彈性往往難以保障。

2)降本增效大背景

  • 資源使用率低,迫切需要提高整體使用率

  • 資源碎片化較為嚴重,資源無法得到充分利用

  • 平臺缺乏統(tǒng)一的資源協(xié)調能力

由于將物理資源分散到各個部門,如直播業(yè)務有獨立的直播物理資源池,電商有專屬物理資源,碎片化程度極高,所以平臺統(tǒng)一協(xié)調資源的能力難免存在欠缺。

  • 資源占用大頭難以快速發(fā)現(xiàn),治理困難

降本增效遵循二八原則,即20%的業(yè)務可能占了80%的資源。我們需要快速如何找出20%的業(yè)務,并推動其進行治理,這部分業(yè)務得到治理后往往收益較大。

圖片

2、不同部門的關注點

  • 研發(fā)/部門:要有資源去做資源的擴容發(fā)布、藍綠發(fā)布和回滾。希望部門的成本不能過高,避免資源浪費。

  • SRE:服務的穩(wěn)定性。在保證穩(wěn)定性的情況下,聚焦服務資源的使用率,以達到降本增效的目的。

  • 平臺:需要統(tǒng)籌資源buffer,控制資源的超賣率,保證底層容量的穩(wěn)定,從而實現(xiàn)降本增效的目標。

  • 成本部門:資源使用率,賬單、預算和成本。

圖片

3、容量管理面臨的挑戰(zhàn)

  • 內部因素復雜,變動頻繁

包括代碼變更、配置變更、壓測活動、多活切量、定時任務和緩存過期等,都可能導致容量模型發(fā)生改變。

  • 外部場景多樣,難以預知

B站活動比較多,運營也會進行不定時的推廣,一些熱門事件或話題都有可能導致容量的突增。

  • 鏈路瓶頸點多,難以提前發(fā)現(xiàn)

無論是東西向流量還是南北向流量,整個鏈路比較長,因此上游服務、下游服務和中間件都可能遇到瓶頸。

  • 應急依賴人工,恢復時間長

以上問題發(fā)生時,如果依靠人工應急,上游擴容可能會將下游直接打垮,容易引發(fā)二次故障。

圖片

4、容量管理的整體思路

整個容量體系的設計,從下到上分為幾大部分,包括基礎容量、彈性資源、合池和配額管理。

首先是基礎容量,它包含平臺關注的集群容量、資源池容量、Node容量,以及應用畫像的相關數(shù)據(jù)。雖然我們將服務本身發(fā)版涉及到應用資源的容量視作基礎容量,同時業(yè)務也會關注。

在這些基礎容量之上,我們構建了一些彈性資源,包括VPA和HPA,還有我們的合池和配額管理。同時我們構建了整個容量可視化的一些頁面,用于幫助我們的業(yè)務和平臺更好地將自己的資源數(shù)據(jù)可視化,做一些資源的管理。

圖片

二、容量管理之降本增效

1、降本增效通用手段

圖片

2、具體方案介紹

1)彈性伸縮-VPA(Vertical Pod Autoscaler)

針對每一個服務,我們都有服務的軟限和硬限,這是K8S的基本概念。應用CPU Used即應用的CPU的真實使用量。B站所有的硬限和軟限都是通過我們的發(fā)布平臺caster去指定,它們可能是業(yè)務基于經(jīng)驗設置的,設置的值不一定合理。隨著業(yè)務和服務越來越多,這種不合理性就會越發(fā)明顯,導致分配率非常高,但整體的使用率卻不高。

如何解決這個問題?

我們認為,研發(fā)部門無需關注軟限多少,只需關注需要多少資源?;趹玫恼鎸岰PU使用量和應用畫像,評估它的服務等級、是否多活等指標,以此判斷應動態(tài)分配多少軟限。這種方法能提高整個服務的部署密度,提高整體資源池的使用率。

進行大型活動時,如果分配率已經(jīng)很高,可以應用VPA的策略,把非核心服務(如 L2/L3的后臺服務)用來降級,調低軟限,給核心服務騰讓資源。

圖片

我們通過VPA管理平臺下發(fā)VPA策略,使其經(jīng)過VPA-API組件。這個組件是一個中間代理,主要實現(xiàn)對K8S集群中VPA Generator對象的增刪改查操作,負責匯總收集VPA相關的可觀測數(shù)據(jù)。

VPA Generator主要負責拆解先前下發(fā)的具有相同畫像的規(guī)則,如果下發(fā)一個L0等級的多活規(guī)則,它會拆解并創(chuàng)建很多對應VPA對象,最后通過VPA Recommender從監(jiān)控系統(tǒng)中采集一些對應的應用資源指標,計算推薦值即合適的request值,并通過VPA Updater組件調整Pod的資源。

發(fā)布服務時也可能涉及到資源改變,VPA Webhook會監(jiān)聽類似事件,再動態(tài)調整Pod值。

①策略管理

包括VPA指標管理、模板管理和預估/對照組。

  • VPA的指標管理:基于不同的指標例如CPU的使用量max、P99等做一些調整。
  • VPA的模板管理:基于我們的一些應用畫像,例如根據(jù)L0服務或L2服務等不同的服務畫像做一些不同的模板和管理。
  • VPA的策略預估與對照:分清哪種指標或哪部分對我們更優(yōu),因此我們會對不同的策略進行策略預估和對照,以便擇優(yōu)。

②數(shù)據(jù)運營

包括VPA的覆蓋大盤、VPA執(zhí)行記錄和VPA策略分析。

  • VPA覆蓋大盤:分析整個資源池的覆蓋率和執(zhí)行記錄,記錄服務軟限的調整幅度。
  • VPA策略分析:調整后,通過可視化界面觀察是否還存在問題。

③黑名單

整個服務的使用量一般會在活動時劇增,或某個服務上線了新功能,進行壓測,都會導致整個容量數(shù)據(jù)變化。所以我們制作了黑名單機制,進行VPA策略避讓,保證在非預期的情況下,不會對這些服務進行相關調整。

④預警

即使執(zhí)行了VPA,通常也有可能出現(xiàn)不符合預期的情況,所以我們制作了失敗率、覆蓋率和冗余度的策略預警。如果本次調整有多處不符合預期,提前預警將遞送給SRE和平臺方,然后進行治理和排障。

2)PaaS合池

我們的漫畫業(yè)務、直播業(yè)務和OGV業(yè)務都是獨立的物理資源池,如下圖所示,番劇的CPU分配率很高,而漫畫跟直播的分配率相比較低。如果番劇需要資源去完成一些事情,漫畫和直播往往不能滿足,所以需要采購獨立的預算,或額外申請云上資源。

所以我們認為業(yè)務不應關注底層資源,從而完成了PaaS的合池。合池后,業(yè)務更關注邏輯的配額管理,即整個配額的使用率。如果使用率過高或出現(xiàn)問題,業(yè)務可以解決,底層資源則由平臺統(tǒng)一管控,進而平臺的統(tǒng)一管控能力提升。

合池具體如何落地?可分為以下幾步:

  • 標準化治理

基于歷史原因,不同的資源池使用不同策略,甚至配置、內核版本也各不相同,所以涉及到標準化的操作。首先,去除特殊約束,有些服務可能綁定了特殊的物理機發(fā)布。其次,不能配置nolimit相關的服務,因為合池完畢后如果某個服務壓力比較大,且配得不合理,往往會增加物理機的壓力,影響其他業(yè)務。同時,我們還進行了去cpuset化、統(tǒng)一操作系統(tǒng)內核和日志規(guī)范化的操作。

  • 平臺支撐

由于合池完畢后資源也不能無限使用,所以要基于合池后的不同組織進行邏輯配額管理,再整個大資源池覆蓋VPA。

  • 老板的支持

合池涉及到不同的部門,這一方面最重要的是需要老板的支持。自上而下進行的合池較依賴協(xié)同合作。

3)配額管理

容量平臺提供了配額管理相關的策略下發(fā)能力,同時對接內部的CMDB業(yè)務樹?;诮M織業(yè)務的關系,可以設置不同的組織需要的資源數(shù)量。若使用超額,會聯(lián)動發(fā)布平臺,進而控制整體資源。如果資源不夠,可能就無法發(fā)布或擴容。

降本增效的收益

  • 成本:通過這些手段,我們實現(xiàn)了22年H1在線業(yè)務PaaS物理機的0新增,同時整個S12的活動保障實現(xiàn)了0采購。

  • 平臺:統(tǒng)一管控能力極大提升同時,快速支撐大型活動方面,活動數(shù)量攀升了不止10倍。以往進行大型活動支撐時,直播資源不足往往需要采購預算,周期漫長。目前我們可以通過協(xié)調資源和統(tǒng)籌調度盡快交付資源,時間也從原來的一個半月縮短到現(xiàn)在的一個小時或兩個小時。PaaS的整體使用率獲得較大提升。

  • 業(yè)務:首先,對于小業(yè)務而言,由于本身資源池的資源較少,物理機不多,所以宕機對它的影響較大。合池后資源池的規(guī)模較大,服務相對分散,所以無論掛一臺機器還是兩臺機器,對小業(yè)務的影響會大大降低。第二,業(yè)務整體的容量需求得到快速滿足。資源緊張時,它也可以進行臨時的藍綠發(fā)布或者HPA超賣。

三、容量管理之穩(wěn)定性

1、在線業(yè)務的典型特征

2、彈性伸縮-HPA(Horizontal Pod Autoscaler)

HPA的設計理念與VPA相似,包括策略管理、彈性預檢、可觀測和預警。

  • 策略管理

因為HPA基于CPU使用率、內存使用率或QPS之類等指標進行管理,有些基于不同的應用畫像進行管理。例如,針對L0和L1的服務,它們的CPU使用率若達到30%就應該擴容,至于非多活的服務,達到擴容標準的最小值則可能稍高。

  • 彈性預檢

配備HPA后也并非萬無一失,因為HPA做彈性會涉及到下游及一些基礎的技術組件,比如數(shù)據(jù)庫會涉及到一些連接池,需要考慮它是否會滿,是否會導致其他風險等。所以我們進行一些彈性預檢的相關措施,包括臨近值預檢和容量風控等能力。

  • 可觀測

我們會觀測異常記錄和覆蓋率,比如對L0服務的覆蓋率如何,是否所有L0的服務都覆蓋了HPA,HPA被觸發(fā)時HPA的彈性質量如何等問題進行觀測。

  • 預警

我們設計了擴縮容的失敗預警和HPA失效的預警,如果觸發(fā)一些HPA擴容或縮容的事件,研發(fā)部門會收到相關時間通知,告知因服務壓力或流量導致HPA發(fā)生變化。

1)HPA可視化

①HPA管控

包括HPA 的批量開啟和禁用。保障大型活動時,往往會希望容量是穩(wěn)態(tài)的,再基于穩(wěn)態(tài)的容量進行壓測,此時需要先關閉HPA,在低峰谷區(qū)進行壓測。在資源不變的情況下,壓測穩(wěn)態(tài)能夠支撐的量的數(shù)值。后續(xù)可能分為幾輪壓測,最后一輪壓測會開啟全部HPA,觀察我們最終能支持的量,基于這些量預估容估。除此之外,還可能涉及HPA的增刪改查能力。

②可視化

主要是HPA覆蓋率,要確定整個HPA在不同區(qū)域和不同等級覆蓋的應用數(shù)及覆蓋率,對比指標數(shù)據(jù)和彈性實例。

彈性實例對比表明當前服務的實例數(shù)量,并展示一個關鍵數(shù)據(jù)。這個數(shù)據(jù)幫助我們基于HPA配置策略,確定彈性實例的最終數(shù)量。彈性實例受限于HPA的最大值控制。如果純粹通過配置策略計算擴容的實例數(shù),那么能夠通過HPA擴至15個。但如果無最大限制,可能會直接擴至20個。因此,借助可視化能直接看出HPA的設置是否合理,了解整個HPA變化的實際趨勢。

2)HPA并非可以無限擴容

HPA受限于連接池或下游服務有限的承載能力,因此我們排查了整個過程需要使用消息隊列、Tidb、泰山KV、緩存以及中間件等相關組件。整體排查后,發(fā)現(xiàn)MySQL風險較大 ,因為大多數(shù)組件基本是集中式的代理,例如Tidb和泰山KV都是集中式的proxy部署,無連接池相關風險。緩存使用的redis和mc往往具有較大支持連接數(shù),所以風險相對可控。MySQL 則不同,因此我們在彈性預檢這方面增加對MySQL和連接池的預檢。如果整個擴容導致MySql水位變高,就會進行相關提示。服務進行HPA擴容時,可能會導致下游的服務壓力、下游雪崩,導致一些底層的中間件出現(xiàn)一定的問題或壓力。

解決這個問題的整體思路:

一是HPA預檢,二是基于全鏈路的彈性,三是對超出預期的流量做一些組件的限流。

3)容量巡檢

容量巡檢的作用在于,如果某些服務有風險,能夠實現(xiàn)相關數(shù)據(jù)可視化。

針對不同的場景和不同的角色,關注點也不同。

業(yè)務更關注整個業(yè)務維度,例如使用率如何、有無風險應用等應用維度,能盡快找到這些列表,進而快速完成治理。配額管理方面,則包括整個配額的使用率和配額可調度的實例數(shù)量,幫助快速判斷配額風險。

平臺方則更關注資源池的分配率,如可調度的實例數(shù)峰值、資源使用率、資源池是否為單節(jié)點,還會關注整個VPA的調整失敗率和冗余度?;谄脚_方的關注事項,我們制作了風險的巡檢大盤,用以確定哪些資源有風險、哪些資源比較空閑、哪些資源急需治理等情況。

4)超載保護

即使有了這些保障,也無法保證萬無一失。因為流量突發(fā)很常見,如佩洛西事件等熱點事件導致B站的直播流量激增、超出預期,所以這方面需要依靠彈性資源。另一比較重要的手段則是依靠技術組件限流熔斷和降解。

  • 限流

目前限流主要包括分布式的全局限流和基于http、grpc、qps的限流,同時因為每個業(yè)務方基本上都會健全賬號,所以我們會對一些比較核心的業(yè)務做基于caller即調用方的限流,從而避免因某一個業(yè)務的流量突發(fā)而導致整個賬號體系出現(xiàn)問題。

另一方面,我們基于BBR進行動態(tài)限流,基于cpu使用率、成功qps和響應rt等限流,同時聯(lián)動移動端并進行流控。如果服務端超出承受極限,我們會給移動端下發(fā)策略,驅使移動端做流控的控制,避免用戶重試導致雪崩。

  • 熔斷

包括通過滑動窗口計算成功失敗率以及熔斷后需要進行的操作。

  • 降級

基于多活進行跨可能區(qū)的降級,業(yè)務對這個操作無感,這也是我們做多活的一個好處。而對于Node SSR相關的降級,支持降級至靜態(tài)頁,業(yè)務也無感,但耗時相對長些。至于數(shù)據(jù)類的降級,假若AI方面的算法服務出了問題,我們可以進行兜底數(shù)據(jù)展示,但用戶方的內容質量就有所下降。弱依賴降級時,部分服務會直接降級,不展示非核心數(shù)據(jù)。

四、容量管理之可視化運營

1、基礎容量

我們更關注集群、資源池、Node和應用維度的數(shù)據(jù),所以制作一些可視化圖表,以便更快查看整個集群資源池和應用在這段時間內的變化趨勢。

以資源池和Node為例,由于要控制超賣,所以要控制資源池和Node的容量水位和超賣率(Node也有部分熱點)。

有些會觸發(fā)二次調度,把上面的部分服務調用到非熱點的服務中。應用則包括應用的資源使用量、使用率、實例數(shù)和單實例容器數(shù),它的容器包括多少容器數(shù),例如有一個Pod,它可能包含一個主容器和相關伴生容器,伴生有可能導致容量變化。我們基于這些數(shù)據(jù)制作趨勢圖,并在監(jiān)控上保存應用的相關容量數(shù)據(jù)。與監(jiān)控相比,因為數(shù)據(jù)點更加分散,所以保存期限更長,目前已保存了超過兩年的容量數(shù)據(jù)。

2、業(yè)務組織容量

業(yè)務痛點

  • 在進行降本增效時,如何快速找到資源占用的大頭并優(yōu)先治理;
  • 哪些業(yè)務的實用率較低使用不合理;
  • 是哪個業(yè)務擴容導致成本突增
  • 容量治理的效果如何,
  • 哪些業(yè)務的治理不符合預期

解決方案

根據(jù)以上痛點,我們設計了組織業(yè)務容量,基于內部的CMDB即組織業(yè)務數(shù),通過聚合應用指標,從下往上逐漸遞歸,算出整個組織和業(yè)務的容量,呈現(xiàn)歷史容量的變化趨勢。例如,總容量是1萬盒,1萬盒屬于整個直播業(yè)務,而直播的分支包含直播的房間、直播營收相關業(yè)務。

列出每一項所占的資源,就能清晰地感知哪些業(yè)務是資源占比的大頭和占比總量。通過圖片上的紅線和紅點,就能分析它的使用量與使用合理性。下圖右方則呈現(xiàn)了整個容量的變化趨勢,這樣就能快速定位不合理的板塊。同時,我們支持數(shù)據(jù)的一鍵下鉆,作用同上。

3、容量事件

資源治理時,往往會遇到資源變少變空或不能發(fā)版的問題。以往查詢這些問題根源,我們可能要翻遍各個平臺。例如,查看是否有人在發(fā)布平臺進行擴容或縮容操作,部分服務是否因壓力過大觸發(fā)HPA,或是否有人在管理平臺中臨時添加了機器導致容量變大。

由于平臺數(shù)量多,業(yè)務SRE排查相當困難,所以我們做了容量事件相關的平臺,以消費包括發(fā)布平臺、HPA以及Node管理等整個變更平臺的變更事件。通過變更事件,把數(shù)據(jù)消費到容量事件平臺上,統(tǒng)籌觀察這段時間業(yè)務的容量變更,因此容量事件是我們快速定位容量變化根因的重要途徑。這樣做的收益很顯著,以往容量發(fā)生變化,業(yè)務必須聯(lián)系SRE和平臺。而現(xiàn)在無需這樣操作,就能快速感知容量變化的根因,處理效率提升。

圖片

4、容量周報

容量周報分為部門周報和內部周報,業(yè)務部門更關注整體資源的用量以及資源使用率的變化。觀察這些數(shù)據(jù)能更好地感知容量效果。除了降本增效以外,業(yè)務還關注穩(wěn)定性,希望得知具體的風險應用有哪些,以及一周內哪些應用有怎樣的容量變化。

對于內部來說,SRE和平臺比較關注哪些部門的自營資源占量較大而使用率較低,這些部門對我們來說往往是能用于降本的組織,我們需要提前與他們溝通,所以就需要內部周報幫助完成。同時我們也列出了部門資源使用率的排名,排名越靠前說明治理得越好,反之亦然。

圖片

張鶴

嗶哩嗶哩 

基礎架構部 資深SRE

2020年加入B站,先后負責社區(qū)/直播/OGV/推廣搜相關的SRE工作,深度參與多活,活動保障,混沌工程,容量治理相關的建設,主導容量管理平臺,混沌平臺的架構設計和落地,負責B站S賽、跨年晚會、拜年祭等相關活動的基礎架構保障工作,目前主要負責推廣搜業(yè)務的穩(wěn)定性建設。

責任編輯:武曉燕 來源: dbaplus社群
相關推薦

2020-09-09 07:00:00

Kubernetes集群容器

2012-10-08 13:58:59

甲骨文Exadata X3Exadata

2024-05-06 08:47:26

Spring框架二維碼

2020-08-20 09:30:17

芯片半導體技術

2022-02-10 13:57:26

5G無線通信VR/AR

2023-12-26 12:18:34

2021-01-04 10:54:58

云計算容量管理

2023-02-08 09:42:30

策略方式容量

2018-07-30 15:05:26

Hadoop大數(shù)據(jù)集群

2009-09-07 09:41:16

2016-11-08 12:54:07

大數(shù)據(jù)越南航空

2017-11-03 10:47:04

數(shù)據(jù)中心容量管理

2011-06-24 10:23:10

云計算容量管理BMC

2017-09-25 10:27:37

阿里云POLARDB數(shù)據(jù)庫

2020-01-30 14:50:16

谷歌Android技術

2020-05-20 12:44:53

編程軟件開發(fā)JavaScript

2013-06-18 08:55:55

思科核心路由器CRS-X

2016-07-21 14:18:41

希捷

2021-02-04 09:05:07

MIMO網(wǎng)絡技術網(wǎng)絡性能

2017-09-22 09:22:55

阿里云POLARDB實現(xiàn)
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级欧美一级日韩片 | 免费看片国产 | 九九热在线视频 | 色.com| 精品国产不卡一区二区三区 | 超碰导航 | 成人欧美一区二区三区黑人孕妇 | 免费精品在线视频 | 亚av在线 | 在线视频91 | 特级毛片爽www免费版 | 网页av| 国产成人午夜电影网 | 免费看爱爱视频 | 伊人二区 | 精品免费国产一区二区三区四区介绍 | 日韩一区二区三区四区五区 | 久久亚洲视频 | 一区二区三区视频在线观看 | 免费在线观看成年人视频 | 美日韩中文字幕 | 一级片在线播放 | 免费视频一区二区三区在线观看 | 一区二区三区在线播放 | 色综合成人网 | 亚洲网在线 | 狠狠撸在线视频 | 日韩欧美在线观看视频网站 | 日韩av美女电影 | 久久性 | 黄视频国产 | 一区二区三区国产 | 91精品国产91久久综合桃花 | 欧美黄色一级毛片 | 久久精品国产一区二区三区 | 日日操夜夜操天天操 | 中文字幕亚洲欧美 | 久久久高清 | 国产精品久久久久久久久久三级 | 国产精品永久免费视频 | 黄页网址在线观看 |