AHBench-jenkins是由阿里云Lindorm团队研发的Benchmark测试套件。该测试套件集成了YCSB(Yahoo! Cloud Serving Benchmark)工具,YCSB提供了测试集合、测试流程控制、结果汇聚等功能。使用该测试套件,您可以通过简单配置,一键执行性能测试。本文介绍如何在ECS上安装AHBench-jenkins测试套件并完成性能测试。
运行环境
请确保ECS实例满足以下条件:
-
与云原生多模数据库 Lindorm实例位于同一专有网络。
-
(建议)ECS实例规格为16vCPU及以上。
-
Linux系统。
-
JDK 1.8及以上版本。
-
Python 2.7。
注意事项
-
测试压力过程中可能会使得被测实例负载过高,请勿在生产环境中运行该测试套件。
-
该测试套件同一时间只能运行一个测试集,测试集内部测试任务串行执行。请确保没有并行执行其他测试任务。
-
该测试套件使用"ahbenchtest-read"与"ahbenchtest-write" 两个表作为测试用表。测试过程中可能会删除再创建这两张表。请确保这两张表可以安全地被删除。
-
确保被测实例有足够的存储空间。
-
ECS为虚拟运行环境,同一机型下的性能测试结果可能存在5%~10%的波动,处于预期范围之内。
-
启动服务前,确保已配置ECS安全组,并允许来自HTTP 8080端口的入站访问,否则将无法顺利连接ECS实例。
准备工作
-
将ECS实例的主私网IP添加至云原生多模数据库 Lindorm实例的白名单中,添加方法请参见设置白名单。
-
配置ECS安全组,并放行8080端口的入站访问。
-
下载测试套件AHBench-jenkins,并上传到ECS实例解压。
步骤一:启动服务
-
启动AHBench-jenkins服务。
# 通过如下命令可以设置该套件的端口,默认为8080
cd AHBench-jenkins-v1.0.0
./start.sh 8080
-
在浏览器中输入ECS公网地址和AHBench-jenkins服务的端口号来访问服务。格式为:http://<ip>:<port>。
http://47.96.XX.XX:8080
步骤二:选择测试集模板
-
单击测试集模板。
测试集模板包括快速测试集(FastTest)和完整测试集(FullTest)。
-
快速测试集:测试数据量1000万,整体运行时间大约2小时(视被测实例规格可能有变化),至少需要总存储空间25 GB。
-
完整测试集:测试数据量20亿,整体运行时间大约25小时(视被测实例规格可能有变化),至少需要总存储空间2 TB。
-
-
选择测试模板后,单击左侧菜单栏Build with Parameters来配置测试任务。
步骤三:配置测试任务
必填配置
Lindorm
|
参数 |
参数说明 |
获取路径 |
|
cluster_addr |
Lindorm实例宽表引擎的HBase Java API访问地址。 |
Lindorm控制台的数据库连接页面,单击宽表引擎,可查看HBase Java API访问地址。 如果AHBench-jenkins部署在同VPC的ECS上,请使用专有网络地址,否则请开通并使用公网地址。 |
|
username |
访问Lindorm实例的数据库用户。 请确认该用户具有全局权限的read、write、admin、trash以及system权限。 |
|
|
password |
访问Lindorm实例的数据库密码。 |
HBase增强版
|
参数 |
参数说明 |
获取路径 |
|
cluster_addr |
HBase增强版实例的Java API访问地址。 |
HBase控制台的数据库连接页面,在连接信息区域可查看Java API访问地址。 如果AHBench-jenkins部署在同VPC的ECS上,请使用专有网络地址,否则请申请并使用外网地址。 |
|
username |
访问HBase增强版实例的数据库用户。 请确认该用户具有全局权限的read、write、admin、trash以及system权限。 |
|
|
password |
访问HBase增强版实例的数据库密码。 |
HBase标准版
|
参数 |
参数说明 |
获取路径 |
|
cluster_addr |
HBase标准版实例的ZK链接地址。 |
HBase控制台的数据库连接页面,连接信息区域可查看Java API访问地址。 如果AHBench-jenkins部署在同VPC的ECS上,请使用专有网络地址,否则请申请并使用外网地址。 |
通用配置(可选)
步骤四:启动测试
单击BUILD按钮提交测试任务到执行队列中。
步骤五:测试结果分析
测试用例运行完毕后,会生成CSV文件,您可以通过浏览器进行查看和下载。
生成的文件包括各测试用例的结果文件(batchwrite.csv、scan.csv、singleread.csv、singlewrite.csv、workloada.csv至workloadf.csv)、测试参数文件(test_params.csv)以及汇总结果文件(total_result.csv)。
您可以将数据结果复制到Excel或者Numbers等数据分析软件中做进一步对比分析。CSV文件结果示例如下。
TestName,OperationType,Throughput(rows/s),AverageLatency(us),P95Latency(us),P99Latency(us),P999Latency(us)
batchwrite,BATCH,101437.0,125750.6753771419,210431.0,254463.0,314111.0
scan,SCAN,1655724.0,7704.259769699419,21295.0,58655.0,85887.0
singleread,READ,75501.0,1689.6162362271912,2044.0,2669.0,22415.0
singlewrite,INSERT,42512.0,3001.4856138550078,4483.0,9263.0,50271.0
workloada,READ,26010.0,1996.9924856520854,2789.0,4135.0,27535.0
workloada,UPDATE,26011.0,2907.7582520171654,3963.0,5891.0,31071.0
workloadb,READ,59728.0,1989.3114753677578,2771.0,3699.0,19631.0
workloadb,UPDATE,3150.0,2770.810318072335,4025.0,5311.0,22783.0
workloadc,READ,67388.0,1892.5555709970954,2555.0,3433.0,17103.0
workloadd,READ,61513.0,1926.9758923129186,2717.0,3705.0,15391.0
workloadd,INSERT,3237.0,2781.8499603085943,4055.0,5623.0,18815.0
workloade,INSERT,188.0,4851.740461394097,13071.0,48319.0,109183.0
workloade,SCAN,349277.0,26626.44060447983,68415.0,417535.0,463615.0
workloadf,READ,28806.0,2688.784531208804,4383.0,10071.0,55967.0
workloadf,UPDATE,14402.0,3481.2656232319496,5551.0,8895.0,55455.0
workloadf,READ-MODIFY-WRITE,14402.0,6398.633906954003,9551.0,24639.0,66623.0
常见问题
如果测试中遇到错误退出,请检查如下事项:
-
Java和Python是否安装,版本是否正确。
-
被测实例地址以及必填配置是否填写正确。
-
被测实例是否支持测试所指定的压缩算法。
-
被测实例状态是否正常服务。