日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何使用 AutoPilot 对作业自动调优?

發布時間:2024/9/3 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用 AutoPilot 对作业自动调优? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:本文主要介紹如何使用 AutoPilot 對作業自動調優,解決 Flink 作業開發和運維的兩大難題。

作者 | 呂文龍(龍三),阿里巴巴高級技術專家

摘要:本文由阿里巴巴高級技術專家呂文龍(龍三)分享,主要介紹如何使用 AutoPilot 對作業自動調優。內容將通過以下四個部分來介紹:

  • AutoPilot簡介
  • AutoPilot實操演示
  • 如何選擇AutoPilot策略
  • AutoPilot使用注意事項
  • 一、AutoPilot簡介

    1.AutoPilot解決的難題

    AutoPilot的主要目標是解決 Flink 作業開發和運維的兩大難題。

    • 第一、作業調優難,開發和運維成本高的問題。

    Flink作業通常需要很長時間運行,數據和作業的流量也會隨著時間不斷變化,因此作業資源也會隨著時間不斷變化。通常,我們需要隨著時間變化對作業不斷調優,才能保證作業長時間穩定運行。

    Flink SQL的引入大大簡化了作業的開發的難度,但是加大了作業的調優的難度。因為SQL的用戶通常對底層的具體實現不了解,這就導致作業的調優難度會變大。

    • 第二、作業資源利用率低、執行資源成本高的問題。

    造成這個問題的原因是因為作業在沒有動態資源優化的時候,通常都需要以最高峰時期的資源需求進行配置,在長時間運行中,非高峰時期的資源利用率就會比較低,這就會導致作業運行的成本偏高。

    總體來說AutoPilot的目標是希望通過自動化的、自適應的資源調優來降低 Flink 的使用的門檻,同時降低 Flink 的使用的成本。

    2.AutoPilot的系統架構

    AutoPilot屬于 Flink 管控服務的一部分,主要包括異常檢測跟異常解決兩個部分。AutoPilot異常檢測主要通過實時訂閱 Flink 作業的事件信息進行統計分析,識別因為資源問題導致的異常狀態。當出現異常時,會觸發資源自動調優來解決。AutoPilot異常解決主要通過動態更新作業資源配置的參數來實現的。作業配置參數更新后,管控服務的另外一個服務,也就是APP Manager就會自動重啟 Flink 的作業,來實現最新的配置上限,從而實現作業配置的更新。

    目前AutoPilot主要支持三個功能:

    • 根據作業的實際負載動態調整作業的并發度,同時對應的調整TM的個數,這樣就可以保證作業的資源隨著流量的變化而變化,實現動態的調整;
    • 根據TM的內存利用率,動態調整TM的資源,這樣可以保證單個TM內存的資源處于一個合理的狀態;
    • 自動識別作業因為資源問題導致的異常,動態調整TM的資源,保證作業處于一個穩定的狀態。

    二、AutoPilot實操演示

    1.如何為作業配置AutoPilot

    AutoPilot支持為每個作業獨立配置,可以動態更新AutoPilot的配置,不影響作業的正常運行。

    AutoPilot提供了三種模式

    • 默認的Disabled模式:即AutoPilot不會進行作業狀態的監控;
    • Active模式:AutoPilot啟動作業狀態監控,并再必要的時候自動更新作業參數配置;
    • Monitoring模式: 啟動作業狀態監控,在識別到作業異常時,提供配置更新建議,但是需要用戶確認,手動觸發更新作業配置。

    AutoPilot提供了五種策略

    • Cpu-based策略:主要基于TM的CPU實際利用率來動態調整并發度,這是一個典型的彈性計算伸縮策略。當CPU利用率高的時候,說明作業比較繁忙,這時候AutoPilot就會擴大作業的并發度,來減少單個TM的負載。當CPU利用率低的時候,說明 TM比較空閑,這時候就可以反過來減少作業的并發度,來釋放多余的資源;

    • Source-delay-based策略:主要根據source的delay metrics來判斷是否需要進行并發度調整。這個策略目前只支持sls和datahub兩種source。正在社區推進metrics標準化即FLIP-33,完成以后,這個策略會支持更多的 source;

    • Slot-utilization-based策略:主要根據task的slot利用率判斷是否需要調小并發度。和CPU的利用率不同的而是,如果task里有io wait或者sleep的邏輯也會被計算在內,利用率的計算會更加準確。但這個策略依賴對source節點的利用率的統計,會依賴FLIP-27,因此也需要等到FLIP-27完全完成后才能實際生效;

    • Memory-utilization-based策略:主要基于TM實際內存的利用率以及GC metrics信息來判斷是否需要調整 TM內存大小。當TM整體內存利用率低,而且沒有GC嚴重的時候,可以調整內存的大小;當TM內存利用率已經偏高,或者說GC嚴重的時候,可以調大單個TM的內存,來保證上面跑的task處于比較健康的狀態;

    • Job-exception-based策略:主要是自動識別因為資源異常所產生的作業的異常。當識別到這種異常的時候,AutoPilot會自動調大單個TM內存的大小來解決這種資源的異常,保證作業處于穩定的狀態。

    AutoPilot的冷卻時間

    當AutoPilot處于Active或者Monitoring狀態時,需要配置 AutoPilot的冷卻時間。冷卻時間是指兩次rescale的最小時間間隔。因為AutoPilot觸發的時候,作業需要重啟,重啟過程中需要進行作業狀態的初始化以及預熱,因此需要把這段時間排除掉,才能避免AutoPilot的策略做出錯誤判斷。通常來說state越大,作業的初始化和預熱的時間會越長,因此這時候冷卻時間通常也要配的大一點才能保證AutoPilot正常的運行。

    AutoPilot自定義參數

    可以通過自定義的參數來個性化的控制AutoPilot的策略行為,以適配一些特殊的作業的要求。比如IO操作特別多的作業,如果開啟了cpu-based,就需要把 cpu-based觸發的閾值調低,這樣才能適配作業實際cpu使用場景。

    實操演示

    針對這個提前創建好的作業,當需要對它做AutoPilot配置時,需要在作業詳情頁面上選擇AutoPilot的tab頁。默認狀況AutoPilot是不會啟動的,當需要啟動的時候,需要在tab頁上把AutoPilot的模式從disable轉換成 Active或者Monitoring。

    選擇好模式后,需要選擇所需的策略以及冷卻的時間,自定義配置位置填上自定義的參數。然后保存,這樣就可以開啟AutoPilot, 對這個作業狀態的進行監控以及資源的自動調優。

    當需要關閉一個作業的AutoPilot的時候,同樣也只需在配置頁面,把模式切換成disable并保存就可以了,這樣AutoPilot的狀態又回到了未啟動。無論怎樣操作AutoPilot都不會影響作業的正常運行。

    2.如何查看AutoPilot運行狀態

    當AutoPilot啟動的時候,可以在自動調優的狀態頁面查看當前AutoPilot運行的狀態。狀態信息主要包含兩部分:

    • 第一是最新推薦的作業配置。當AutoPilot處于Monitoring狀態下面,如果有新的配置推薦產生,就會在這個頁面進行展示。同時可以手動在這個頁面觸發配置的更新。
    • 第二是看到每個AutoPilot啟動策略所監控到的作業的狀態信息。這些狀態信息一方面可以解釋目前AutoPilot為什么要進行配置的更新,同時也可以用根據一些狀態信息來輔助進行手動作業的調優或者代碼的優化。

    3.如何查看AutoPilot歷史信息

    AutoPilot在運行過程中,一旦對作業的配置進行了修改,這些修改都會被作為事件保存下來,讓用戶可以在后期進行AutoPilot行為的review,以及作業流量的分析。事件信息的查看,可以在“運行事件”里,將AutoPilot類型的事件過濾出來并進行查看。

    三、如何選擇AutoPilot策略

    1.一般場景作業

    推薦大家使用默認參數,也就是cpu-based + memory-utilization-based + job-exception-base的組合策略。在這個默認策略下面,當TM的CPU利用率長期比較高的的時候就會觸發并發度的調整;TM的內存的使用率偏高或者偏低的時候,就會觸發單個TM的內存調整;當作業出現資源相關的異常的時候,也會及時的觸發TM資源的調整。整個配置跟常見的彈性計算的自動調優配置是基本保持一樣的,因此比較簡單易懂。

    2.高優先級、延遲敏感的作業

    推薦不要開啟AutoPilot的Active模式,而是使用Monitoring模式。因為這種類型的作業一旦觸發AutoPilot的調優,就會導致作業重啟,可能會影響業務效果。通過Monitoring模式,可以人工的定時的去review,檢查是否有需要優化的配置,可以在適當的時機進行手動更新。

    3.使用sls或者datahub的作業

    推薦使用source-delay-based + slot-utilization-based + memory-utilization-based + job-exception-based 策略。這樣對作業并發度的調優效果會更好,整個算法的收斂的速度會更快。

    四、AutoPilot使用注意事項

    首先,AutoPilot修改并發度是通過默認的并發度來實現的,因此作業代碼中不能顯示設置并發度,否則就無法實現動態調節。

    其次,AutoPilot觸發更新以后,控制臺會自動重啟作業,這會導致作業短暫的停止處理數據,對于抖動敏感的作業推薦使用Monitoring模式,避免對業務產生影響。

    第三,是AutoPilot策略對作業的數據模型有一定假設:

    • 作業的流量需要是流量平滑變化的,不能有數據傾斜,這樣可以根據當前時間之前一小段時間作業的運行統計數據來預估作業所需資源;
    • 作業的數據不能有數據傾斜,每個算子的吞吐能力會隨著并發度線性擴展,這樣才可以根據當前作業的吞吐能力去預估并發度調整后作業的吞吐能力,從而決定作業需要調整多少并發度;

    當作業的pattern嚴重偏離這幾個假設時,可能會存在作業異常, AutoPilot沒有觸發自動調整,或者說AutoPilot觸發了自動的調整,但是算法可能會出現無法收斂,這時作業會持續的處于異常狀態,并且不斷的重啟等等。此時需要關閉AutoPilot,進行手動的作業調優,才能保證作業處于健康的狀態。

    原文鏈接:https://developer.aliyun.com/article/781173?

    版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

    總結

    以上是生活随笔為你收集整理的如何使用 AutoPilot 对作业自动调优?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。