全部產品
Search
文件中心

Realtime Compute for Apache Flink:配置自動調優

更新時間:Sep 13, 2024

Flink作業支援智能調優和定時調優兩種自動調優模式。本文為您介紹如何配置智能調優和定時調優,以及配置過程中的注意事項。

背景資訊

通常,您需要花費大量的時間進行作業調優。例如,新上線一個作業時,需要考慮如何配置該作業的資源、並發個數、Task Manager個數及大小等。此外,作業運行過程中,還需要考慮如何調整作業資源,使作業處於最高資源使用率;作業出現反壓或延時增大的情況時,需要考慮如何調整作業配置等。Realtime ComputeFlink版提供了自動調優功能,您可以根據以下資訊,選擇合適的調優模式。

調優模式

適用情境

使用優勢

相關文檔

智能調優

某作業使用資源30 CU,上線平穩運行一段時間後,發現在Source無延遲、無反壓的情況下,作業的CPU和記憶體使用量率有時會很低。

此時如果您不想人工調節資源,需要系統自動完成資源調節,可以使用智能調優模式。系統將在資源使用率比較低時,自動降低資源配置,在資源使用率提高到一定閾值時,再自動提高資源配置。

  • 幫您更合理地調整作業並發度和資源配置。

  • 全域最佳化您的作業,解決作業輸送量不足、全鏈路存在反壓和資源浪費等各種效能調優問題。

定時調優

定時調優計劃描述了資源和時間點的對應關係,一個定時調優計劃中可以包含多組資源和時間點的關係。

在使用定時調優計劃時,您需要明確知道各個時間段的資源使用方式,根據業務時間區間特徵,設定對應的資源。

例如,某業務全天早09:00~19:00是業務高峰,19:00到第二天09:00是業務低峰。此時您可以使用定時調優功能,在高峰時間段使用30 CU,在業務低峰時使用10 CU。

配置定時調優策略,請參見開啟並配置定時調優

使用限制

  • 最多建立20個資源計劃。

  • 定時調優和智能調優模式互斥,如果您應用了任何一種調優模式,則無法應用另外一種。如果您需要應用另外一種調優模式,則需要先停止正在應用的調優模式。

  • 定時調優中的定時計劃互斥,如果您應用了某個定時計劃,則無法應用其他定時調優計劃。如果您需要應用其他定時調優計劃,則需要先停止正在應用的定時調優計劃。

  • 在開啟unaligned checkpoint時,不支援調整並發。

  • 智能調優不支援Session叢集部署的作業。

  • 智能調優無法解決流作業所有的效能瓶頸。

    流作業效能問題是由上下遊共同決定的,如果是Flink出現了瓶頸,可以通過Flink資源調優解決。但調優策略對作業的處理模式是基於一定的假設的。例如,流量平滑變化、不能有資料扭曲、每個運算元的吞吐能力能夠隨並發度的升高而線性拓展。當商務邏輯嚴重偏離以上假設時,作業可能會存在異常。例如:

    • 無法觸發修改並發度的操作、作業不能達到正常狀態和作業持續重啟等。

    • 自訂純量涵式UDF、自訂彙總函式UDAF或自訂表格值函數UDTF效能問題。

  • 智能調優無法識別外部系統的問題。如果出現外部系統問題,您需要自行解決。

    外部系統故障或訪問變慢時,會導致作業並發度增大,加重外部系統的壓力,導致外部系統雪崩。常見的外部系統問題如下:

    • 資料匯流排DataHub分區不足或訊息佇列RocketMQ輸送量不足。

    • Sink效能問題。

    • 雲資料庫RDS死結。

  • 智能調優和定時調優都支援基礎模式和專家模式。

注意事項

  • 任何模式的調優使作業重啟時,會導致作業短暫停止資料。

    說明

    VVR 8.0.1及以上版本,Flink系統會先嘗試使用動態參數更新重啟作業,再嘗試使用作業整體重啟。動態參數更新下業務停機時間較之作業整體重啟縮小30%-98%,具體依賴於作業狀態和邏輯,目前僅支援並發的修改。詳情請參見動態擴縮容與參數動態更新

  • 如果您使用了DataStream作業或SQL自訂的連接器,請確認作業代碼中未配置作業並發度,否則智能調優和定時調優將無法調整作業資源,即自動調優配置無法生效。

開啟並配置智能調優

  1. 進入智能調優開啟和配置頁面。

    1. 登入Realtime Compute控制台

    2. 單擊目標工作空間操作列下的控制台

    3. 營運中心 > 作業營運頁面,單擊目標作業名稱。

    4. 自動調優頁簽,單擊智能調優模式

  2. 開啟自動調優開關。

    開啟後,在自動調優頁簽頁面頂部會顯示智能調優應用中。如果您需要關閉已開啟的智能調優,則可以單擊關閉智能調優或者關閉自動調優右側的開關。

  3. 單擊調優配置右側的編輯後,修改智能調優相關參數。

    參數

    說明

    調優策略

    • 平穩策略:通過應用該策略,系統會尋找適合整個運行周期的固定資源或定時計劃,並根據整個周期作業的運行情況來調整作業資源,從而減少啟停行為對作業的影響。這樣做可以使作業的運行趨於穩定,減少不必要的變動和波動,最終達到收斂狀態。

      說明

      只有找到更適合整個周期的資源配置,才會動態調整,否則不會修改已有資源。

    • 自適應策略:應用該策略後,系統會根據即時作業資源和指標資訊動態修改資源配置,更加關注當前作業的延時和資源使用方式,並根據相關指標的變化更快速地最佳化資源適配。這樣做可以使系統更加敏銳地響應作業需求,提高資源配置的效率和適應性。

    調整間隔時間(分鐘)

    作業調優重啟生效一次之後,下一次再進行調優的時間間隔。

    最大CPU限制

    作業自動調整資源可以擴容的最大CPU上限,不同的調優策略的預設值不同。

    最大記憶體限制

    作業自動調整資源可以擴容的最大記憶體上限,不同的調優策略的預設值不同。

    更多參數配置

    平穩策略和自適應策略,都可以配置如下參數:

    • mem.scale-down.interval:調低記憶體時最小觸發時間間隔。

      預設值為24小時。24小時內,檢測記憶體使用量率如果小於閾值,則會降低記憶體,或建議降低記憶體。

    • parallelism.scale.max:並發度向上調整時,最大並發限制。

      預設值為-1,表示最大並發沒有限制。

      說明

      對於訊息佇列類產品(例如Kafka,MQ,SLS等),自動調優並發的調整會受到分區數的影響,無法超過該上限。即如果您設定的並發度最大值超過其分區數,系統將自動調整並發度為分區數。

    • parallelism.scale.min:並發度向下調整時,最小並發限制。

      預設值為1,表示最小並發為1。

    • delay-detector.scale-up.threshold:可以容忍的最大延遲閾值。基於消費資料來源頭的延遲,來衡量作業處理吞吐的能力。

      預設值為1分鐘。當資料處理能力不足延遲超過1分鐘,則會通過Scale Up方式來提高作業的吞吐能力,Scale Up方式包括增加並發或者拆Chain,或建議Scale Up。

    • slot-usage-detector.scale-up.threshold:監控資料處理節點(不包括Source節點)空閑時間,當VERTEX處理資料時間佔比持續大於該值時,觸發調大並發度的操作,以提升資源的使用。預設值為0.8。

    • slot-usage-detector.scale-down.threshold:監控資料處理節點(不包括Source節點)空閑時間,當VERTEX處理資料時間佔比持續小於該值時,觸發調小並發度的操作,以降低資源的使用。預設值為0.2。

    • slot-usage-detector.scale-up.sample-interval:監控slot空閑指標的時間間隔,以便計算該時間間隔的平均值。

      預設值為3分鐘,與slot-usage-detector.scale-up.thresholdslot-usage-detector.scale-down.threshold結合使用。當3分鐘內的空閑時間平均值大於0.8或者小於0.2時,則進行scale-up或者scale-down。

    • resources.memory-scale-up.max:調整單個Task Manager和Job Manager的記憶體時,能調整到的最大值。

      預設值為16 GiB。TM和JM進行智能調優或調大並發時,記憶體的上限為16 GiB。

  4. 單擊儲存

開啟並配置定時調優

操作步驟

  1. 進入開啟並配置定時調優頁面。

    1. 登入Realtime Compute控制台

    2. 單擊目標工作空間操作列下的控制台

    3. 營運中心 > 作業營運頁面,單擊目標作業名稱。

    4. 自動調優頁簽,單擊定時調優模式

  2. 單擊建立定時計劃

  3. 資源配置地區,填寫資源配置資訊。

    • 觸發周期:您可以選擇為單次觸發、每天、每周和每月。當選擇為每周和每月時,您還需要指定對應的生效日期範圍。

    • 生效時間:選擇具體的生效時間。

    • 資源模式:支援基礎模式和專家模式。配置詳情請參見配置作業資源

    • 運行參數:參數配置詳情請參見運行參數配置

  4. (可選)單擊新增資源配置時段後,配置生效時間和資源配置。

    您可以在同一個定時計劃中,配置多個時間段的資源調優計劃。

    重要

    同一定時計劃中,新增資源配置時段的觸發時間必須和已有資源配置的觸發時間之間的間隔大於半小時,否則無法儲存新的資源配置。

  5. 單擊目標資源定時計劃名稱右側操作列下的應用

配置樣本

全天09:00~19:00是業務高峰,在高峰時間段使用30 CU。19:00到第二天09:00是業務低峰,在業務低峰時使用10 CU。該情境的調優策略配置結果如下圖所示。

image.png

智能調優預設調優行為

如果您開啟了智能調優,則系統預設會從並發度和記憶體兩個方面為您進行自動調優:

  • 智能調優會調整作業的並發度來滿足作業流量變化所需要的吞吐。

    智能調優會監控消費源頭資料的延遲變化情況、TaskManager(TM) CPU實際使用率和各個運算元處理資料能力來調整作業的並發度。詳情如下:

    • 作業延遲Delay指標正常(不超過60s),不修改當前作業並發。

    • 作業延遲Delay指標超過預設閾值60s,分以下兩種情況來調整並發度:

      • 延遲正在下降,不進行並發度調整。

      • 延遲增加並且連續上升3分鐘(預設值), 預設調整作業並發度到當前實際TPS的兩倍,但不超過設定最大的資源(預設值為64 CU)。

    • 作業不存在延遲指標。

      • 作業某VERTEX節點連續6分鐘實際處理資料時間佔比超過80%,調大作業並發度使得SLOT使用率降低到50%,但不超過設定最大的資源(預設為64 CU)。

      • 所有TM的平均利用率連續6分鐘超過80%,調高並發度使TM的CPU使用率降低到50%。

    • 所有TM的最大CPU使用率連續24小時低於20%,且VERTEX的實際處理資料時間低於20%時,調低作業的並發度使CPU和VERTEX實際處理的時間佔比提高到50%。

  • 智能調優也會監控作業的記憶體使用量和Failover情況,來調整作業的記憶體配置。詳情如下:

    • 在JobManager GC頻繁或者發生OOM異常時,會調高JM的記憶體,預設最大調整到16 GiB。

    • 在TM GC頻繁或者發生OOM異常、HeartBeatTimeout異常時,會調高TM的記憶體,預設最大調整到16 GiB。

    • 在TM記憶體使用量率超過95%時,會調大TM的記憶體。

    • 在TM的實際記憶體使用量率連續24小時低於30%時,降低TM記憶體的配置,預設最小調整到1.6 GiB。

相關文檔

  • 作業智能診斷服務能夠幫您監控作業健康情況,全面保障您的業務穩定可靠運行,詳情請參見作業智能診斷

  • 通過作業配置和Flink SQL最佳化兩方面提升Flink SQL作業效能,詳情請參見高效能Flink SQL最佳化技巧