AHBench是由阿里雲Lindorm團隊研發的benchmark測試套件,支援一鍵測試Lindorm和HBase等叢集效能。
介紹
該測試套件整合了YCSB(Yahoo! Cloud Serving Benchmark)工具,YCSB提供了測試集合、測試流程式控制制、結果匯聚等功能。使用該測試套件,您可以通過簡單配置,一鍵執行效能測試。
準備工作
注意事項
-
測試壓力過程中可能會使被測系統負載過高,請勿在生產環境中運行該測試載入器。
-
該測試套件使用"ahbenchtest-read"與"ahbenchtest-write" 兩個表作為測試用表。測試過程中可能會刪除再建立這兩張表。請確保這兩張表可以安全地被刪除。
-
確保有足夠測試叢集的儲存空間。
-
ECS為虛擬運行環境,同一機型下的效能測試結果可能存在5%~10%的波動,處於預期範圍之內。
運行環境
請確保壓測用戶端運行環境滿足:
-
Linux系統
-
JDK 1.8 +
-
Python 2.7
-
建議用戶端CPU配置為獨享16Core以上
配置叢集地址
在AHBench/conf/hbase-site.xml中配置需要測試的Lindorm或HBase叢集地址。
訪問Lindorm可參考基於HBase Java API的應用開發。並在hbase-site.xml中增加配置以下參數。
<property>
<name>hbase.client.connection.impl</name>
<value>org.apache.hadoop.hbase.client.AliHBaseUEClusterConnection</value>
</property>
配置環境變數
在AHBench/conf/ahbench-env.properties路徑下組態工具啟動並執行環境變數。
-
執行以下命令開啟ahbench-env.properties檔案。
vi AHBench/conf/ahbench-env.properties -
配置JDK的安裝地址(例如:
JAVA_HOME=/usr/java/jdk1.8.0/)。如果Java已經在系統PATH中,可以跳過該配置。 -
配置被測HBase叢集的版本,如果為1.x版本則填1,如果為2.x版本則填2。
HBASE_VERSION=2
配置測試相關參數(可選)
在AHBench/conf/ahbench-settings.properties路徑下配置測試相關的參數,如壓縮、編碼、線程數、資料量、欄位大小等,預設不需要修改,如有需求可根據情境進行定製修改。
部分參數僅在特定Lindorm版本支援,如ZSTD壓縮和INDEX編碼僅在雲Lindorm支援,你可以通過配置ZSTD和INDEX獲得更好的效能。
# 配置被測表的壓縮演算法,可選項有:
# NONE LZO ZSTD SNAPPY GZ LZ4 ZSTD 等
# 注意部分被測系統可能不支援指定的壓縮演算法
# 雲Lindorm推薦使用ZSTD
ahbench.table.compression=SNAPPY
# 配置被測表的編碼演算法,可選項有:
# NONE DIFF INDEX
# 注意部分被測系統可能不支援指定的編碼演算法
# 雲Lindorm推薦使用INDEX
ahbench.table.encoding=DIFF
啟動測試
-
快速測試集
測試資料量1000萬,整體已耗用時間大約40分鐘(視被測系統可能有變化),至少需要總儲存空間20 GB。
cd AHBench ./fast_test -
完整測試集
測試資料量20億,整體已耗用時間大約25小時(視被測系統可能有變化),至少需要總儲存空間2 TB。
cd AHBench ./full_test若要重複進行該測試,可以通過跳過資料匯入階段(上一次測試已成功運行),減少已耗用時間。跳過匯入階段,整體測試回合時間大約3.5小時(視被測系統可能有變化)。
cd AHBench ./full_test --skipload
測試結果分析
測試完成後,會在目前的目錄產生CSV檔案。CSV(Comma-Separated Values)檔案全稱為逗點分隔值檔案。可以將測試結果複製到Excel、Numbers等資料分析軟體中做進一步對比分析。
-
查看CSV檔案的名稱。
ls -ltr -
查看指定CSV檔案的內容。
cat full_throughput.csv
CSV檔案內容如圖所示。

常見問題
如果測試中遇到錯誤退出,請檢查如下事項。
-
JAVA_HOME是否正確設定,是否安裝了Python運行環境。
-
被測叢集地址是否填寫正確。
-
被測叢集HBase版本是否填寫正確。
-
被測叢集是否支援測試所指定的壓縮演算法。
-
被測叢集狀態是否正常服務。