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叢集部署的作業。
YAML作業暫不支援配置自動調優。
調優模式之間互斥,需要先停止正在應用的模式,才可以應用另一種。
定時調優和智能調優模式互斥,如果您應用了任何一種調優模式,則無法應用另一種。如果您需要應用另一種調優模式,則需要先停止正在應用的調優模式。
定時調優中的定時計劃互斥,如果您應用了某個定時計劃,則無法應用其他定時調優計劃。如果您需要應用其他定時調優計劃,則需要先停止正在應用的定時調優計劃。
注意事項
任何模式的調優使作業重啟時,會導致作業短暫停止消費資料。
說明VVR 8.0.1及以上版本,Flink系統會先嘗試使用動態參數更新重啟作業,再嘗試使用作業整體重啟。動態參數更新下業務停機時間較之作業整體重啟縮短30%-98%,具體依賴於作業狀態和邏輯,目前僅支援並發的修改。詳情請參見動態擴縮容與參數動態更新。
如果您使用了DataStream作業或SQL自訂的連接器,請確認作業代碼中未配置作業並發度,否則智能調優和定時調優將無法調整作業資源,即自動調優配置無法生效。
智能調優無法解決流作業所有的效能瓶頸。
流作業效能問題是由上下遊共同決定的,如果是Flink出現了瓶頸,可以通過Flink資源調優解決。但調優策略對作業的處理模式是基於一定的假設的。例如,流量平滑變化、不能有資料扭曲、每個運算元的吞吐能力能夠隨並發度的升高而線性拓展。當商務邏輯嚴重偏離以上假設時,作業可能會存在異常。例如:
無法觸發修改並發度的操作、作業不能達到正常狀態和作業持續重啟等。
自訂純量涵式UDF、自訂彙總函式UDAF或自訂表格值函數UDTF效能問題。
智能調優無法識別外部系統的問題。如果出現外部系統問題,您需要自行解決。
外部系統故障或訪問變慢時,會導致作業並發度增大,加重外部系統的壓力,導致外部系統雪崩。常見的外部系統問題如下:
資料匯流排DataHub分區不足或訊息佇列RocketMQ輸送量不足。
Sink效能問題。
雲資料庫RDS死結。
在進行資源調整時,系統會進行資源對比並確定資源調整方式。
如果要應用的資源計劃和現線上上配置是CPU或Memory的變更,作業就會使用停止->啟動的方式進行資源調整,可能會出現業務中斷、資料回追延遲和資源不足導致啟動失敗等問題。如果僅是並發度的變更,則會直接通過動態擴縮容路徑進行調整,減少斷流時間。詳情請參見動態擴縮容與參數動態更新。
開啟並配置智能調優
調優策略
策略 | 適用情境 | 作用及優勢 |
(推薦)自適應策略 | 適用於資源需求波動較大、對延遲高度敏感、多任務並發、存在資料扭曲或負載不均以及長時間啟動並執行情境。 | 應用該策略後,系統會根據即時作業資源和指標資訊動態修改資源配置,更加關注當前作業的延時和資源使用方式,並根據相關指標的變化更快速地最佳化資源適配。這樣做可以使系統更加敏銳地響應作業需求,提高資源配置的效率和適應性。 |
平穩策略 | 適用於資源需求相對穩定、啟停成本較高且對穩定性要求較高的週期性任務、定時任務以及長時間啟動並執行情境。 | 通過應用該策略,系統會尋找適合整個運行周期的固定資源或定時計劃,並根據整個周期作業的運行情況來調整作業資源,從而減少啟停行為對作業的影響。這樣做可以使作業的運行趨於穩定,減少不必要的變動和波動,最終達到收斂狀態。 說明
|
操作步驟
進入智能調優開啟和配置頁面。
單擊目標工作空間操作列下的控制台。
在頁面,單擊目標作業名稱。
在自動調優頁簽,單擊智能調優模式。
開啟自動調優開關。
開啟後,在自動調優頁簽頁面頂部會顯示智能調優應用中。如果您需要關閉已開啟的智能調優,則可以單擊關閉智能調優或者關閉自動調優右側的開關。
單擊調優配置右側的編輯後,選擇調優策略並修改智能調優相關參數。
(推薦)自適應策略
參數
說明
最大CPU限制
作業自動調整資源可以擴容的最大CPU上限,預設值為64 Core。
最大記憶體限制
作業自動調整資源可以擴容的最大記憶體上限,預設值為256 GiB。
最大並發度
自動調優可以設定的最大並發度,預設值為1024。
說明對於訊息佇列類產品(例如Kafka,MQ,SLS等),自動調優並發的調整會受到分區數的影響,無法超過該上限。即如果您設定的並發度最大值超過其分區數,系統將自動調整並發度為分區數。
最小並發度
自動調優可以設定的最小並發度,預設值為1。
擴容策略
滿足以下任何一個條件即可觸發擴容。如果某些參數不適用於當前業務情境,可以通過單擊右側的禁用按鈕將其關閉。
作業的延時是否超過某個閾值,並且該狀態需要持續一定時間。
作業單個運算元的平均Busy是否超過某個閾值,並且該狀態需要持續一定時間。
作業單個TaskManager(TM)的記憶體使用量率是否超過某個閾值。
作業是否發生OutOfMemory(OOM)異常。
作業TaskManager(TM)或JobManager(JM)的每秒記憶體回收(GC)耗時佔比是否超過某個閾值,並且該狀態需要持續一定時間。
說明您可以根據歷史運行資料或預設值設定閾值。如果參考資料不可用,可以開始時先設定一個相對寬鬆的閾值,觀察一段時間後再進行調整。閾值的單位為百分比,取值範圍為0% ~ 100%。
期間用於過濾瞬時波動,避免因短暫異常而頻繁觸發擴容。合理設定期間有助於提高擴容的準確性。時間單位可以根據需求進行選擇。
是否發生OOM異常,無需填寫具體值,只需啟用或禁用。
縮容策略
滿足以下任何一個條件即可觸發縮容。如果某些參數不適用於當前業務情境,可以通過單擊右側的禁用按鈕將其關閉。閾值單位為百分比,您可以根據需要選擇時間單位。
單個運算元的平均Busy是否小於某個閾值(單位為百分比),並且該狀態需要持續一定時間。
單個TaskManager(TM)的記憶體使用量率是否小於某個閾值。
進階參數配置
某些規則尚處於測試階段,暫時無法全面提供。如有相關需求,歡迎聯絡我們以擷取支援。
平穩策略
參數
說明
調整間隔時間(分鐘)
作業調優重啟生效一次之後,下一次再進行調優的時間間隔。預設值是10分鐘。
最大CPU限制
作業自動調整資源可以擴容的最大CPU上限,預設值為16 Core。
最大記憶體限制
作業自動調整資源可以擴容的最大記憶體上限,預設值為64 GiB。
最大可接受延遲
可以容忍的最大延遲閾值。預設值為1分鐘。
更多參數配置
可以配置的參數如下:
mem.scale-down.interval:調低記憶體時的最小觸發時間間隔。預設值為4小時。4小時內,檢測到記憶體使用量率低於設定的閾值,系統將會調整記憶體配置,或建議減少記憶體配置以最佳化資源使用率。
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)的計算/IO資源使用率閾值。當節點處理資料的時間佔比持續高於此值,系統將增加並發度。預設值為 0.8。slot-usage-detector.scale-down.threshold:設定處理節點(不含 Source)的計算/IO資源使用率閾值。當節點處理資料的時間佔比持續低於此值,系統將減少並發度。預設值為 0.2。slot-usage-detector.scale-up.sample-interval:系統採樣處理節點使用率的時間跨度。系統計算該時間段內的平均使用率,並與上述兩個閾值比較,決定是否進行scale-up 或scale-down。預設值為 3 分鐘。resources.memory-scale-up.max:調整單個Task Manager和Job Manager的記憶體時,能調整到的最大值。預設值為16 GiB。TM和JM進行智能調優或調大並發時,記憶體的上限為16 GiB。
單擊儲存。
儲存資源調整計劃
平穩策略在作業的運行趨於穩定後,系統會自動產生固定資源或定時計劃方案供您選擇,您可以手動查看、分析、儲存或應用資源調整方案。推薦方案詳情如下。
推薦方案 | 使用說明 | 備忘 |
固定資源 | 輸出單個不含時間維度的資源配置。 單擊查看詳情後,選中固定資源,單擊儲存後單擊確定。 | 單擊確定後,作業部署上的資源配置將被預估的資源配置代替,在作業下次啟動時被應用。 |
定時計劃(公測中) | 輸出時間段和每個時間段的資源配置。 您可以將系統產生的定時計劃儲存後繼續應用,具體操作請參見儲存定時計劃並應用。 | 智能調優中應用該定時計劃後,調優模式將從智能調優自動更換為定時調優,達到平穩後將不會再調整資源。 |
配置並應用定時調優計劃
操作步驟
建立定時計劃並應用
進入開啟並配置定時調優頁面。
單擊目標工作空間操作列下的控制台。
在頁面,單擊目標作業名稱。
在自動調優頁簽,單擊定時調優模式。
單擊建立定時計劃。
在資源配置地區,填寫資源配置資訊。
(可選)單擊新增資源配置時段後,配置生效時間和資源配置。
您可以在同一個定時計劃中,配置多個時間段的資源調優計劃。
重要同一定時計劃中,新增資源配置時段的觸發時間必須和已有資源配置的觸發時間之間的間隔大於半小時,否則無法儲存新的資源配置。
單擊目標資源定時計劃名稱右側操作列下的應用。
儲存定時計劃並應用
平穩策略在作業的運行趨於穩定後,系統會自動產生定時計劃方案供您查看、分析、儲存並應用。
進入自動調優頁面。
單擊目標工作空間操作列下的控制台。
在頁面,單擊目標作業名稱。
單擊自動調優頁簽。
單擊查看詳情後,推薦方案選中定時計劃。
配置定時計劃。
動作
說明
備忘
1、設定最大變更次數。
指定定時計劃最多出現的變更次數。
下限為2次,上限為5次。
2、單擊合并時間段。
根據您設定的最大變更次數進行合并。
合并時,根據具體情況考慮是否提前擴容或縮減資源,以滿足相應的策略要求。
查看與修改合并後的資源配置。配置詳情請參見配置作業資源。
單擊頁面左下角的儲存。
填寫定時計劃名稱,或勾選應用本計劃,單擊確定。
智能調優中應用該定時計劃後,調優模式將從智能調優自動更換為定時調優,達到平穩後將不會再調整資源。
配置樣本
全天09:00~19:00是業務高峰,在高峰時間段使用30 CU。19:00到第二天09:00是業務低峰,在業務低峰時使用10 CU。該情境的調優策略配置結果如下圖所示。

相關文檔
作業智能診斷服務能夠幫您監控作業健康情況,全面保障您的業務穩定可靠運行,詳情請參見作業智能診斷。
通過作業配置和Flink SQL最佳化兩方面提升Flink SQL作業效能,詳情請參見高效能Flink SQL最佳化技巧。