flink調優之壓測任務的合理並行度
阿新 • • 發佈:2022-04-14
壓測合理並行度的方法:
①獲得高峰期的qps,如每秒5w條
②消費該高峰期的資料,達到反壓狀態後檢視每秒處理的資料量y,就是單並行度的處理上限
③x除以y,增加一點富餘: 乘以1.2,就是合理的並行度。
在flink中,設定並行度的地方有:
①配置檔案 ②提交任務時的引數 ③程式碼env ④程式碼運算元
案例:
提交一個flink程式,內容是計算uv,設定並行度為5
測試時記得關閉chain來看到每一個運算元的情況 : env.disableOperatorChaining();
在flink ui介面檢視整個DAG圖,看到明顯產生了反壓情況(資料處理速度達到100%)
接著檢視source的情況:
點選subtask,因為並行度是5,可以看到5個task(ID為0-4)的資料接收量和傳送量(流量大小和條數),因為是source端,所以接收都是0 。
從下圖看到ID為0的task傳送量已經達到了35MB,共有62w條。這是總共的,我們要檢視每秒的量
開啟metric輸入persecond搜尋:
從下圖中我們可以看到ID為4的子任務每秒傳送的量在7000+
可以看到幾個task的傳送量都差不多,由此可見單並行度的處理能力為7000條,假設該業務高峰期時每秒產生的資料量(qps)為7w,
所以7/0.7*1.2, 該業務合理的並行度為12