GooseFS助力大數據業務數倍提升計算能力

前言

GooseFS是由騰訊雲推出的一款分散式快取方案,主要針對包括需要快取加速的數據湖業務場景,提供基於對象存儲COS服務的近計算端數據加速層。

GooseFS 基於開源大數據快取方案 Alluxio 進行設計和研發。相較於開源方案,GooseFS 提供了更多關鍵特性,穩定性和性能優化;同時深度融合了騰訊雲生態,對接了騰訊雲TKE、EMR等計算服務,為用戶提供開箱即用的能力。

快取加速和數據本地化GooseFS提供的重要能力之一。

  • GooseFS 可以與計算節點混合部署提高數據本地性,利用高速快取功能解決存儲性能問題,提高讀寫對象存儲 COS 文件的效率。
  • GooseFS 可以提供近計算端的分散式共享快取,上層計算應用可以透明地、高效地從遠端存儲將需要頻繁訪問的熱數據快取到近計算端,加速數據 I/O 性能。
  • GooseFS 提供了感知元數據 Table 的能力,能夠加速大數據場景下列出文件列表( List ),重命名文件( Rename )等元數據操作的性能。此外,業務可以按需選擇HDD, SSD,NVME SSD 等不同的存儲介質,平衡業務成本和數據訪問性能。
    本文介紹了GooseFS讀寫元數據時的表現,並與HDFS進行對比;同時也測試了在混合讀寫情況下GooseFS在性能表現上的穩定性。

01 測試表現

我們使用NNBench進行測試。NNBench是HDFS官方自帶的用於測試NameNode性能的工具。由於它使用的是標準的FileSystem介面,因此可以使用它來測試GooseFS服務端的性能。在測試方案上,我們在GooseFS和 HDFS 上創建相同的數據集,觀察TPS值,對比GooseFS性能表現情況。

我們使用了1台EMR標準型S2機器(CPU:8核,記憶體:32GB,高效雲盤:100G x 1)作為GooseFS集群的Master節點,3台EMR標準型S5機器(CPU:16核,記憶體:64GB,高效雲盤:100G x 5)作為Worker節點,同時將GooseFS集群快取策略設置為wPolicy=MUST_CACHE,rPolicy=CACHE。

1. Write測試

大數據場景中需要頻繁創建文件,我們首先比較了寫入文件的性能,由於本次測試主要目的是驗證元數據性能表現,因此文件大小選擇了0位元組。測試結果如下所示:

可以看到,在集群的環境配置,maps等都相同的情況下:

(1)GooseFS在載入元數據的比hdfs性能至少提升20%。

(2)數據量增加的時候GooseFS處理數據等性能提升更明顯。

這個主要是因為GooseFS採用文件粒度鎖,可以並發創建文件。而HDFS是全局鎖,相當於順序做創建操作。因此寫請求QPS增加的時候,GooseFS性能提升更明顯。

2. List測試

Write測試主要測試高並發下元數據服務單點寫入、單點查詢的性能。然而,文件列表導出(ls/ls -R)操作、文件大小統計(du/count)操作也是用戶使用頻率較高的操作,這些命令的執行時間,反應了元數據服務遍歷操作的執行效率。在測試方案上,為了保證HDFS和GooseFS測試數據的一致性,我們採用相同的數據集,執行相同的操作,測試GooseFS和HDFS元數據服務遍歷操作的執行效率。

數據集分兩個場景:

(1)多層級數據:50w數據,目錄層級4層。

(2)單層級數據:單個目錄下10w文件。

相關測試結果表現如下:

可以看到,GooseFS加速數據I/O性能。提供了感知元數據的能力,能夠加速大數據場景下列出文件列表List等元數據操作的性能。尤其在多層級的數據中性能加速更加明顯。

3、SliveTest測試

SliveTest位於hadoop的test包中,程式碼結構清晰,其主要功能是通過大量map製造多種rpc請求,檢測Namenode的性能。我們可以設定map數量,每個map發起的rpc請求次數,每一種rpc操作佔總操作的百分比,以及讀寫數據量、block size等配置。測試master混合訪問情況下各類請求的qps。

在測試方案上,設置RPC請求(讀:60%,寫:40%)模擬混合訪問下,HDFS和GooseFS處理數據的性能。我們將RPC設置為:append 10% create 10% delete 10% mkdir 5% rename 5% read 30% ls 30%。

相關測試結果表現如下:

可以看到,Master在混合訪問情況下,GooseFS整體性能表現優於HDFS。

基於上面幾個測試,GooseFS採用文件粒度鎖及list開啟了並發優化,在SliveTest這種混合讀寫(多讀少寫)的場景中,GooseFS處理事物的能力明顯優於HDFS。

02 總結

GooseFS提供了可預測的資源劃分和資源使用,使得系統管理員可以對外提供穩定的性能保證。此外,GooseFS可以給共享存儲資源的計算集群帶來顯著的性能收益。

GooseFS提供近計算端的分散式共享快取,上層計算應用可以透明地、高效地從遠端存儲將需要頻繁訪問的熱數據快取到近計算端,加速數據 I/O 性能。關於更多GooseFS請前往://cloud.tencent.com/document/product/436/56412

原文鏈接://mp.weixin.qq.com/s/ICWgpa33S9K11suBKJf0Sw