當前位置:網站首頁>有數大數據基礎平臺之智能運維平臺EasyEagle介紹:集群隊列篇

有數大數據基礎平臺之智能運維平臺EasyEagle介紹:集群隊列篇

2022-07-23 03:06:32InfoQ

他來啦,他來啦!大數據基礎平臺發布會中提到的智能運維平臺,他來啦!

作為數據平臺的用戶們,下述問題一直困擾著我們:
  • 集群資源水比特如何,利用率如何,是否需要擴容?
  • 隊列為什麼最近大量任務出現pending,什麼原因造成?
  • 哪些任務占用了隊列的大部分資源,是否合理,能否優化?
  • 任務運行為什麼這麼慢,哪裏出現了問題?
  • 任務是否能優化,加快產出?
  • 任務或服務出現异常,能否自動運維處理?
  • ... ...

我們針對上述問題,研發了一款自助式、智能化的監控診斷平臺——EasyEagle。旨在達到如下目的:
  • 各層面的實時資源水比特監控(集群、隊列、任務、節點),包括申請以及實際使用;
  • 幫助平臺管理員以及用戶了解各自層面的資源使用狀况,幫助用戶更好的進行資源優化,提昇資源利用率;
  • 對於隊列的相關問題,能很快給出診斷結果,减少用戶定比特時間;
  • 對於任務的性能或异常,能很快給出診斷結果以及建議;
  • 通過對任務的診斷,能提出相關優化建議,進而加快任務的產出以及提高整體的資源利用率。

我們將會從集群隊列視角、任務視角、資源治理以及全鏈路診斷,進行分篇介紹。給各層面的用戶展現目前代錶性的問題,以及如何使用EasyEagle去發現、解决。本篇將從集群視角和隊列視角進行相關的介紹。

1集群視角

1.1 集群基礎監控

集群這塊,主要是針對平臺管理員。他們主要關心的問題如下:
  • 集群資源水比特如何?
  • 資源利用率如何?
  • 是否需要擴縮容等等

EasyEagle提供了集群實時資源監控,並能依據所選時間,給出時間段內資源水比特的走勢情况,依據此信息,管理員能清楚的知道集群閑置及繁忙的時間段,這能為合理的任務編排起到參考作用,例如將非基線任務從繁忙的基線時間段錯開,將高資源消耗任務移至資源空閑的時間段調度等。

EasyEagle同時提供了集群任務量的匯總分析功能,以天為維度或以月為維度,可以清楚的了解到集群每天或每月的任務量數值變化,以此能够衡量最近業務的增長/降低情况,並結合資源水比特進一步分析集群的可擴展性以及水比特變化趨勢,為集群資源擴容等操作提供了數據參考。

EasyEagle的集群概覽界面,展示了如上介紹的相關指標數據。如下圖例所示,展示了集群的實時資源及節點情况、集群任務數量匯總信息,以及集群資源水比特等。

null
此外,作為EasyEagle的亮點之一,可以看到除了集群的內存和CPU的資源水比特情况,我們還引入了集群的實際資源使用率(圖中綠色的線)。簡單來說,在集群分配給任務使用的資源中,有多少是真正的被任務利用到的呢?EasyEagle通過各個節點機器的實際負載和內存使用,匯集成為整個集群的維度的實際資源使用情况。若發現集群可分配資源已經滿載,但實際負載卻很低,那麼就需要關注下,集群大規模的任務資源申請是否有浪費的嫌疑。

為了能够更加直觀的展示出實際資源的利用率,EasyEagle將集群每臺節點的資源利用率以散點圖的形式進行展現,如下圖例所示。每個點代錶集群中的一個計算節點,橫坐標和縱坐標分別是節點內存和CPU利用率。在理想的情况下,機器的內存使用率和cpu使用率應該較為平衡,體現在圖中將會是所有點均勻分布在斜率為1的一條線附近。而在所示圖例中,發現大多數機器節點cpu利用率明顯偏高在40%左右;而內存利用率卻不足15%。那麼就需要關注,集群中每臺計算節點配置和虛擬核及內存大小比例是否合理。

null
根據上述的實際案例,EasyEagle在此模塊明顯能告知管理員以下信息:
  • 集群資源水比特情况,何時出現繁忙,任務應該如何安排調度時間
  • 資源的實際利用率如何,是否可以進一步優化,而不需要采購機器
  • 集群節點的cpu和內存配比是否正確,應該如何設置配比

總之,EasyEagle能够從集群整體維度入手,對集群資源水比特,資源利用情况,任務量變化趨勢,機器節點利用率等大數據平臺運維人員最關心的點,進行展示與剖析。

1.2 集群隊列大量任務pending診斷

針對平臺管理員除了提供集群的基礎監控分析外,目前EasyEagle還提供了針對集群各個隊列運行狀况的相關監控。

在我們對於hadoop平臺的實踐過程中,常遇到這樣的現象:用戶提交的任務,等待了很久,卻發現遲遲調度不起來。這樣的現象較普遍,經常會集中在某一個特定的時段,且每天都會周期性的發生。若pending的是非核心任務,非基線任務,或不關注時效性的離線任務,集群或隊列發生的任務pending很多時候會不被人感知,從而誤以為集群不存在這樣的情况;但是如果是核心任務,那大量的pending將會影響業務的產出。

因此,這樣的現象應該需要引起注意並解决。EasyEagle對於集群所屬隊列的pending有如下的分析:
針對發生pending的原因,大致可以分為如下兩種情况:

(1)隊列資源充足,隊列大量任務pending
  • 隊列AM資源不足
  • Yarn調度性能不足

(2)隊列資源不足,隊列大量任務pending
  • 隊列本身資源不足
  • 隊列的父隊列資源不足,或兄弟隊列進行了資源搶占

分析出pending的原因後,會給出以下數據指標:
  • pending發生的隊列
  • pending問題產生的實際隊列
  • 配置時間段內,連續7天,pending問題產生的實際隊列的資源使用率趨勢
  • 配置時間段內,隊列發生過pending的次數

如下圖例所示,EasEagle能够默認展示集群在前一天中,有哪些隊列發生過pending的情况,問題實際發生的隊列,以及出現過pending的原因。

null
點擊查看詳情,能够進一步展示,問題產生的實際隊列的資源利用率情况,更直觀的展示出問題。如下圖例所示,可以選擇連續七天的隊列資源利用率,圖中標出的點,錶示該時段發生了pending的現象。

null
綜合上述的分析,此功能模塊可以解决以下問題:
  • 集群中部分隊列出現大量任務pending時,可以及時診斷,提前介入,减少用戶感知以及前置處理時長;
  • 通過自動診斷,可以直接告知管理員隊列出現大量任務pending的具體原因。

2隊列視角

作為多租戶的Hadoop集群,可以將整個集群的資源拆分成子隊列的形式,以支持對多業務方共享使用集群資源,並使不同業務方之間資源隔離。在這種環境下,對於業務方,可能更偏向於了解自己業務所在隊列。

  • 隊列各時間段的資源水比特如何,任務調度時間如何安排?
  • 隊列資源的實際利用率如何,是否有優化空間,是否需要向平臺申請新增資源?
  • 某時間段隊列可用資源突然少了這麼多,是哪個任務造成的?
  • 隊列在某個時間段運行特別慢,部分任務提交不上去,出了什麼問題?

上述問題是業務方經常會拋給底層開發以及運維人員的。下面將會演示如何通過EasyEagle回答上述問題。

隊列資源監控

EasyEagle能够選擇任意時段,提供隊列內存,CPU的資源使用水比特趨勢,隊列運行和pending的任務數量趨勢,如下圖例所示:

null
從上面的隊列資源使用視圖,業務方能很明確的獲取到:
  • 什麼時間段,該隊列繁忙
  • 任務的編排,應該配置在哪個時間段

在這個隊列資源使用視圖的下方,EasyEagle還提供了一個可以指定時間段或時間點的任務列錶。列錶如下所示:

null
該任務列錶中每個任務包含指定時間段或時間點的資源申請水平等信息,能幫忙業務方很快的定比特出:

哪個時間段,哪個任務申請了較高的資源

和集群維度的實際資源使用類似,EasyEagle也提供了隊列實際資源使用率。EasyEagle通過任務的實際資源使用情况,聚合為隊列維度的實際資源使用。因此,某個隊列出現實際資源利用率過低,也就代錶了隊列下的任務出現了資源浪費的情况。如下圖所示,藍色線錶示了隊列已經占用的資源水比特,綠色線錶示隊列實際的資源使用水比特。

null
若發現了隊列資源出現的問題,如集群的資源水比特很高,但資源利用率卻很低,我們知道這一定是由於隊列中大量的任務申請資源出現了浪費導致的。想要提高隊列的資源利用率,就一定要從這些任務進行入手治理,通過一定的方式,將任務的資源利用率提高,以此提高隊列,乃至整個集群的資源利用率。

在隊列的資源分析模塊,也非常詳盡的提供了隊列中資源消耗較高,但資源利用率低的任務列錶。這個任務列錶也相當於提供了優化收益最大的top任務信息。優先優化這些任務的資源消耗,提高利用率,可以獲得最大的收益,並明顯的反映在隊列資源中。目前該列錶返回的信息如下圖例所示。

null
找到了待優化的任務列錶,接下來就是針對單個任務的優化了,對於單個任務的資源的優化方式和策略,可以在下文中,任務資源治理功能中獲得詳細的說明。

總之,在隊列資源監控這個模塊裏,我們能為業務方解决以下問題:
  • 通過獲取各時間段隊列的資源水比特,協助業務方合理安排任務調度;
  • 獲取隊列資源的實際使用情况,並列出待資源優化任務列錶,協助業務方提高隊列資源利用率,降低成本;
  • 實時了解,隊列大任務(資源方面或運行時長方面)的運行情况;
  • 為隊列資源預估提供數據支撐。

3小結

本篇圍繞著集群視角和隊列視角進行相關介紹。上述兩個視角主要是面向數據平臺的管理員等角色,他們關心的內容主要是:集群的資源水比特以及各隊列運行狀况,進而合理的調整任務編排以及資源配比。
在後續的篇章中,我們將會以用戶,即任務提交者的視角,進行相關的介紹。

版權聲明
本文為[InfoQ]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/204/202207221657458569.html

隨機推薦