性能测试方法
本章基于GeminiDB Cassandra,进行性能测试,具体包括测试环境,测试步骤,以及测试结果。
测试环境
- 区域:华北-北京四
- 可用区:可用区1+可用区2+可用区3(跨3个可用区部署)
- 弹性云服务器(Elastic Cloud Server,简称ECS):规格选择h3.4xlarge.2,16U32GB,操作系统镜像使用CentOS 7.5 64位版本。
- 被测试实例的配置:每个实例均包含3个节点。
- 被测试实例的规格:覆盖以下规格类型,详见表1 实例规格。
测试工具
本次测试采用开源社区的YCSB 0.15.0版本的测试工具,YCSB连接GeminiDB Cassandra集群负载均衡策略需使用RoundRobinPolicy。
YCSB是一款广泛使用的数据库性能测试工具,具体使用方法请参见YCSB。
测试指标
OPS:Operation Per Second,数据库每秒执行的操作数。
测试步骤
- 配置workload文件。
按照表2 测试模型所示的业务模型,配置workload中的“readproportion”、“insertproportion”、“updateproportion”、“scanproportion”、“readmodifywriteproportion”的值。
按照表3 预置数据量所示的预置数据量,配置workload中的“recordcount”的值。
- 以测试模型workload-insert-mostly为例,执行以下命令,准备数据。
sh bin/ycsb.sh load cassandra-cql -P workloads/workload-insert-mostly -p "hosts=${ContactPoints}" -p "port=${port}" -p "cassandra.username=${username}" -p "cassandra.password=${password}" -p operationcount=400000000 -p recordcount=400000000 -p exportfile=./data_load.exp -threads ${threadNum} -s > data_load.log 2>&1 &
- 以测试模型workload-insert-mostly为例,执行以下命令,测试性能。
sh bin/ycsb.sh run cassandra-cql -P workloads/workload-insert-mostly -p "hosts=${ContactPoints}" -p "port=${port}" -p "cassandra.username=${username}" -p "cassandra.password=${password}" -p operationcount=9000000 -p recordcount=9000000 -p maxexecutiontime=3600 -p exportfile=./workload-insert-mostly.exp -threads ${threadNum} -s > workload-insert-mostly_run.log 2>&1 &
测试模型
- workload模型
表2 测试模型 测试模型编号
测试模型
读多写少场景
workload-read-mostly
95% read, 5% update
读写均衡场景
workload-read-write-combination
50% update, 50% read
读改写均衡场景
workload-read-modify-write
50% read, 50% readmodifywrite
读更新写混合场景
workload-mixed-operational-analytical
65% read, 25% update, 10% insert
写多读少场景
workload-insert-mostly
90% insert, 10% read