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

性能测试方法

本章基于GeminiDB Mongo副本集4.0版本,进行性能测试,具体包括测试环境,测试步骤,以及测试结果。

测试环境

  • 区域:中国-香港
  • 可用区:可用区一
  • 弹性云服务器(Elastic Cloud Server,简称ECS):规格选择通用计算型s3.2xlarge.2,8U16GB,操作系统镜像使用CentOS 7.5 64位版本。
  • 被测试副本集实例的规格:覆盖副本集实例支持的全部规格类型,详见表1
    表1 副本集规格

    副本集编号

    数据库版本

    实例规格

    被测副本集1

    4.0

    4U16GB

    被测副本集2

    4.0

    8U32GB

    被测副本集3

    4.0

    16U64GB

    被测副本集4

    4.0

    32U128GB

测试工具

本次测试采用开源社区的YCSB 0.12.0版本的测试工具。

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

测试指标

OPS:Operation Per Second,数据库每秒执行的操作数。

测试步骤

  1. 配置workload文件。

    按照表2所示的业务模型,配置workload中的“readproportion”、“insertproportion”、“updateproportion”的值。

    按照表3所示的预置数据量,配置workload中的“recordcount”的值。

  2. 以业务模型workload_s1为例,执行以下命令,准备数据。

    ./bin/ycsb load mongodb -s -P workloads/workload_s1 -p mongodb.url=mongodb://${userName}:${password}@${mongodIP}:${port},${mongodIP}:${port},${mongodIP}:${port}/ycsb?authSource=admin&replicaSet=replica&readPreference=secondary -threads ${threadNum} 1>workload_s1_load.result 2> workload_s1_load.log

  3. 以业务模型workload_s1为例,执行以下命令,测试性能。

    ./bin/ycsb run mongodb -s -P workloads/workload_s1 -p mongodb.url=mongodb://${userName}:${password}@${mongodIP}:${port},${mongodIP}:${port},${mongodIP}:${port}/ycsb?authSource=admin&replicaSet=replica&readPreference=secondary -threads ${threadNum} -p maxexecutiontime=1800 1>workload_s1_run.result 2> workload_s1_run.log

    • ${mongodIP}为GeminiDB Mongo副本集实例下主备节点的内网IP。
    • ${password}为GeminiDB Mongo副本集实例的管理员密码。
    • ${threadNum}为运行测试的并发线程数,本次测试的并发数为128。

测试模型

  • workload模型
    表2 workload模型

    workload模型编号

    workload模型

    S1

    100% insert

    S2

    90% update ,10% read

    S3

    65% read ,25% insert, 10% update

    S4

    90% read ,5% insert, 5% update

    S5

    50% update, 50% read

    S6

    100% read

  • 测试并发数 :128
  • 文档模型

    使用YCSB默认配置,每个文档大小1KB,默认“_id”索引。

  • 预置数据量

    本次性能测试中,针对每种规格的副本集,测试了2种预置数据量下的性能。

    不同规格副本集的预置数据量不同,具体如下表所示。

    表3 预置数据量

    副本集编号

    实例规格

    预置小数据量

    预置大数据量

    被测副本集1

    4U16GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    被测副本集2

    8U32GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    被测副本集3

    16U64GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    被测副本集4

    32U128GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

  • 数据一致性模型

    弱一致性:Write Concern为{w : 1, j : false},数据写入单个节点磁盘,将返回结果。后台异步持久化下盘,为默认的Write Concern设置。