前言
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請前往:https://cloud.tencent.com/document/product/436/56412
原文連結:https://mp.weixin.qq.com/s/ICWgpa33S9K11suBKJf0Sw