我知道幾周前更新了CDF服務(默認工作人員類型&附加的PD已更改),並明確表示它會使批處理作業變慢。然而,我們的工作表現已經下降,超出了他們實際滿足我們業務需求的程度。例如,對於我們的其中一個工作,它從BigQuery中的表中讀取約270萬行,具有6個側面輸入(BQ表),進行一些簡單的字符串轉換,最後寫入多個輸出(3)到BigQuery。這個過去需要5-6分鐘,現在需要15-20分鐘的時間 - 無論我們有多少虛擬機在使用它。數據流性能問題
有什麼我們可以做的,以獲得速度回到我們以前看到的?
下面是一些統計:
- 從BQ表讀取與2744897行(294MB)
- 6 BQ側輸入
- 3多輸出到BQ,其中2個是2744897和其他1500行
- 在區亞太east1-b運行下面
- 時間包括工作池自旋向上和拆除
10個虛擬機(N1-STANDARD-2) 16分鐘5秒 2015-04-22_19_42_20-4740106543213058308
10個虛擬機(N1-STANDARD-4) 17分11秒 2015 - 04-22_20_04_58-948224342106865432
10個虛擬機(N1-STANDARD-1) 18分鐘44秒 2015-04-22_19_42_20-4740106543213058308
倍20倍的VM(N1-STANDARD-2) 22分鐘53秒 2015-04-22_21_26_53-18171886778433479315
50倍的VM(N1-STANDARD-2) 17分26秒 2015-04 -22_21_51_37-16026777746175810525
100層的虛擬機(N1-STANDARD-2) 19分鐘33秒 2015-04-22_22_32_13-9727928405932256127
我查看了其中一個作業的步驟執行日誌,看起來大部分時間(大約9分鐘)已用於將步驟已寫入的數據導入BQ。我們將研究爲什麼這個導入過程變得如此緩慢。 – jkff
有沒有一種解決方法,我可以使用,直到你找出爲什麼它變得如此緩慢? –
一位隊友認爲,緩慢可能是由於新SDK對待邊界輸入的方式發生了變化 - 請問您可以參考http://stackoverflow.com/questions/29718820/why-did-sideinput-method-從上下文轉移到processcontext-in-dataflow-beta並檢查它是否與您的工作相關? – jkff