手機(jī)網(wǎng)站后臺(tái)語言南寧seo優(yōu)化公司
監(jiān)控Checkpoints
監(jiān)控 checkpoint 行為最簡單的方法是通過 UI 的 checkpoint 部分。 監(jiān)控這兩個(gè)指標(biāo):
- 算子收到第一個(gè) checkpoint barrier 的時(shí)間。當(dāng)觸發(fā) checkpoint 的耗費(fèi)時(shí)間一直很高時(shí),這意味著 checkpoint barrier 需要很長時(shí)間才能從 source 到達(dá) operators。 這通常表明系統(tǒng)處于反壓下運(yùn)行。
- 對(duì)齊時(shí)間Alignment Duration:處理第一個(gè)和最后一個(gè) checkpoint barrier 之間的時(shí)間。在 unaligned(未對(duì)齊)checkpoints 下,exactly-once 和 at-least-once checkpoints 的 subtasks 處理來自上游 subtasks 的所有數(shù)據(jù),且沒有任何中斷。 然而,對(duì)于 aligned exactly-once checkpoints,已經(jīng)收到 checkpoint barrier 的通道被阻止繼續(xù)發(fā)送數(shù)據(jù),直到所有剩余的通道都趕上并接收它們的 checkpoint barrier(對(duì)齊時(shí)間)。
理想情況下,這兩個(gè)值都應(yīng)該很低 。 較高的數(shù)值意味著 由于存在反壓(沒有足夠的資源來處理傳入的記錄),導(dǎo)致checkpoint barriers 在作業(yè)中的移動(dòng)速度較慢,這也可以通過處理記錄的端到端延遲在增加來觀察到。
在出現(xiàn)瞬態(tài)反壓、數(shù)據(jù)傾斜或網(wǎng)絡(luò)問題時(shí),這些數(shù)值偶爾會(huì)很高。
Unaligned checkpoints 可用于加快checkpoint barriers的傳播。 但是并不能解決導(dǎo)致反壓的根本問題(端到端記錄延遲仍然很高)。
Checkpoint 調(diào)優(yōu)
應(yīng)用程序可以配置定期觸發(fā) checkpoints。 當(dāng) checkpoint 完成時(shí)間超過 checkpoint 間隔時(shí),在正在進(jìn)行的 checkpoint 完成之前,不會(huì)觸發(fā)下一個(gè) checkpoint。默認(rèn)情況下,一旦正在進(jìn)行的 checkpoint 完成,將立即觸發(fā)下一個(gè) checkpoint。
當(dāng) checkpoints 完成的時(shí)間經(jīng)常超過 checkpoints 基本間隔時(shí)(例如,因?yàn)闋顟B(tài)比計(jì)劃的更大,或者訪問 checkpoints 所在的存儲(chǔ)系統(tǒng)暫時(shí)變慢), 系統(tǒng)不斷地進(jìn)行 checkpoints(一旦完成,新的 checkpoints 就會(huì)立即啟動(dòng))。這可能意味著過多的資源被不斷地束縛在 checkpointing 中,并且 checkpoint 算子進(jìn)行得緩慢。 此行為對(duì)使用 checkpointed 狀態(tài)的流式應(yīng)用程序的影響較小,但仍可能對(duì)整體應(yīng)用程序性能產(chǎn)生影響。
為了防止這種情況,應(yīng)用程序可以定義 checkpoints 之間的最小等待時(shí)間:
StreamExecutionEnvironment.getCheckpointConfig().
setMinPauseBetweenCheckpoints(milliseconds)
此持續(xù)時(shí)間是指從最近一個(gè) checkpoint 結(jié)束到下一個(gè) checkpoint 開始之間必須經(jīng)過的最小時(shí)間間隔。