
# 性能测试方法
本章节基于GeminiDB HBase接口，进行性能测试，具体包括测试环境、测试步骤、以及测试模型。
#### 测试环境
- 区域：华北-北京四。
- 可用区：可用区1。
- 弹性云服务器（Elastic Cloud Server，简称ECS）：规格选择h3.4xlarge.2，16U32GB，操作系统镜像使用CentOS 7.5 64位版本。
- 压测数据模型：单行20列，每列20Bytes大小。
- 被测试实例的规格：覆盖以下规格类型，详见[表1 实例规格]。
   表1实例规格 
  | 编号       | 规格      |
  |:---|:---|
  | cluster1 | 16U64GB |
     
  
 
#### 测试工具
本次测试采用开源社区的YCSB 0.17.0版本的测试工具，连接GeminiDB HBase接口实例进行测试。
YCSB是一款广泛使用的数据库性能测试工具，具体使用方法请参见[YCSB](https://github.com/brianfrankcooper/YCSB/tree/master/cassandra)。
#### 测试指标
OPS：Operation Per Second，数据库每秒执行的操作数。
#### 测试步骤
1. 配置workload文件。 按照[表2 测试模型]所示的业务模型，配置workload中的"readproportion"、"insertproportion"、"updateproportion"、"scanproportion"、"readmodifywriteproportion"的值。
   
2. 以测试模型workload-insert-mostly为例，执行以下命令，准备数据。
   ```
   nohup ./bin/ycsb load hbase -s -P workloads/workload-insert-mostly -P hbase.properties -p operationcount=400000000 -p recordcount=400000000 -threads ${thread} -p maxexecutiontime=${maxexecutiontime} -s 1> data_load.log 2>&1 &
   ```
   
3. 以测试模型workload-insert-mostly为例，执行以下命令，测试性能。
   ```
   nohup ./bin/ycsb run hbase -s -P workloads/workload-insert-mostly -P hbase.properties -p operationcount=9000000 -p recordcount=9000000 -threads ${thread} -s 1> workload-insert-mostly_run.log 2>&1 &
   ```
   
#### 测试模型
- workload模型
   表2测试模型 
  | 测试模型编号                   | 测试模型            |
  |:---|:---|
  | workload-read（单行读）       | 100% read       |
  | workload-insert（单行写）     | 100% insert     |
  | workload-range-read（范围读） | 100% range read |
     
  

- 预置数据量 本次性能测试中，针对每种规格的实例，都预置了20亿条数据，每条数据有20个字段，每个字段大小为20Bytes。
  
 
