2017-01-03 43 views
0

我正在測試一個小的Bigtable集羣(最少3個節點)。我在Google控制檯上看到,隨着寫入QPS級別接近10K,CPU利用率接近推薦的最大值〜80%。Google Bigtable性能:QPS vs CPU利用率

從我所瞭解的情況來看,QPS指標是針對整個實例的,而不是針對每個節點的?在這種情況下,爲什麼在技術上達到CPU閾值時,實例的QPS負載僅爲30K指導最大值的1/3?我只是想了解是否有數據上傳程序(通過Dataflow完成)。我也懷疑爲什麼我從來沒有設法觀察接近30K Writes/sec的任何事情,但我懷疑這是由於數據流方面的限制,因爲我在試用期間仍受限於8 CPU報價。 ..

回答

0

CPU圖形顯示明確度量標準以顯示Bigtable超載。不幸的是,由於我們添加了批量寫入API,因此QPS並不是確定過載根本原因的理想指標。 Bigtable/Dataflow加載使用可在單個批處理中發送多個請求的雲可大容量批量API,並且1個查詢現在可以有幾十個更新請求。每秒更新的行數會是一個更好的指標,但是它還不存在於Cloud Bigtable方面。在Cloud Bigtable步驟的Dataflow UI中有一個等效的度量標準,您可以使用該數字來判斷Cloud Bigtable的性能。

我使用的經驗法則是在執行寫入操作時,每1個Cloud Bigtable節點使用3個Dataflow工作CPU。這很可能是您的作業正確配置了8個CPU和3個Bigtable節點。根據您的描述,我認爲您的系統儘可能高效地工作。

+0

感謝上述,一如既往的幫助。爲了其他原因,另外兩個觀察值:(1)我使用部分行鍵將表預分解成若干個區域,按照這篇文章的建議[link](http://stackoverflow.com/questions/39169327/populating-data -in - 谷歌 - 雲BigTable中,是回吐長的時間)。這似乎削減了將行上傳一半的時間。 –

+0

(2)最奇怪的是,似乎Bigtable吞吐量遠高於Console Chart的建議。我使用8個Dataflow工作人員在〜12分鐘內寫了100m行(所以100m/12/60/3 =〜45K寫/秒/節點??),即使圖表從未顯示超過7K次寫入/秒。也許這就是爲什麼在這個階段CPU利用率接近最大值的原因。另外,使用平板(非數據流)1n-standard-8機器,我在大約2分鐘內在這些行上執行了9m的掃描/寫入/刪除操作,所以9m/2/60/3 =約20k操作/秒。同樣,控制檯圖表從未顯示> 7k/sec的操作。 –

+0

兩次測試之後,我身體上遍歷每一行 - 似乎都在那裏)所以實際的性能似乎比那些控制檯圖表顯示的要好得多... –