1. 程式人生 > 其它 >flink調優之壓測任務的合理並行度

flink調優之壓測任務的合理並行度

壓測合理並行度的方法:

①獲得高峰期的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