更新时间:2024-08-08 GMT+08:00

测试方法

本章节基于GeminiDB HBase接口,进行性能测试,具体包括测试环境、测试步骤、以及测试模型。

测试环境

  • 区域:华北-北京四。
  • 可用区:可用区1。
  • 弹性云服务器(Elastic Cloud Server,简称ECS):规格选择h3.4xlarge.2,16U32GB,操作系统镜像使用CentOS 7.5 64位版本。
  • 压测数据模型:单行20Bytes大小。
  • 被测试实例的规格:覆盖以下规格类型,详见表1 实例规格
    表1 实例规格

    编号

    规格

    cluster1

    16U64GB

测试工具

本次测试采用开源社区的YCSB 0.17.0版本的测试工具,连接GeminiDB HBase兼容版实例进行测试,并进行了高并发下的问题修复。

YCSB是一款广泛使用的数据库性能测试工具,具体使用方法请参见YCSB

测试指标

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。