更新时间:2021-07-27 GMT+08:00
分享

测试方法

本章基于文档数据库服务社区版3.4和社区版4.0版本的增强Ⅱ型规格,进行性能测试,具体包括测试环境,测试步骤,以及测试结果。

以下测试过程以集群和副本集实例类型为例。

测试环境

  • 区域:华北-北京四
  • 可用区:可用区二
  • 弹性云服务器(Elastic Cloud Server,简称ECS):规格选择通用计算增强型c3.2xlarge.2,8U16GB,操作系统镜像使用CentOS 7.6 x86_64位版本。
  • 被测试集群和副本集实例的数据库版本:包含3.4和4.0版本。
  • 被测试集群实例的配置:每个实例均包含2个shard节点。
  • 被测试集群和副本集实例的增强Ⅱ型规格:覆盖实例支持的全部规格类型,详见表1表2
    表1 集群规格

    集群编号

    数据库版本

    shard节点规格

    被测集群1

    3.4

    2U4GB

    被测集群2

    3.4

    2U8GB

    被测集群3

    3.4

    4U8GB

    被测集群4

    3.4

    4U16GB

    被测集群5

    3.4

    8U16GB

    被测集群6

    3.4

    8U32GB

    被测集群7

    3.4

    16U32GB

    被测集群8

    3.4

    16U64GB

    被测集群9

    3.4

    32U128GB

    被测集群10

    3.4

    64U256GB

    被测集群11

    4.0

    2U4GB

    被测集群12

    4.0

    2U8GB

    被测集群13

    4.0

    4U8GB

    被测集群14

    4.0

    4U16GB

    被测集群15

    4.0

    8U16GB

    被测集群16

    4.0

    8U32GB

    被测集群17

    4.0

    16U32GB

    被测集群18

    4.0

    16U64GB

    被测集群19

    4.0

    32U128GB

    被测集群20

    4.0

    64U256GB

    表2 副本集规格

    集群编号

    数据库版本

    实例规格

    被测副本集1

    3.4

    2U4GB

    被测副本集2

    3.4

    2U8GB

    被测副本集3

    3.4

    4U8GB

    被测副本集4

    3.4

    4U16GB

    被测副本集5

    3.4

    8U16GB

    被测副本集6

    3.4

    8U32GB

    被测副本集7

    3.4

    16U32GB

    被测副本集8

    3.4

    16U64GB

    被测副本集9

    3.4

    32U128GB

    被测副本集10

    3.4

    64U256GB

    被测副本集11

    4.0

    2U4GB

    被测副本集12

    4.0

    2U8GB

    被测副本集13

    4.0

    4U8GB

    被测副本集14

    4.0

    4U16GB

    被测副本集15

    4.0

    8U16GB

    被测副本集16

    4.0

    8U32GB

    被测副本集17

    4.0

    16U32GB

    被测副本集18

    4.0

    16U64GB

    被测副本集19

    4.0

    32U128GB

    被测副本集20

    4.0

    64U256GB

测试工具

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

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

测试指标

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

测试步骤

  1. 配置workload文件。

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

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

    示例:配置workload_s1文件。

    • recordcount = 100000000
    • operationcount = 100000000
    • insertproportion = 1
    • readproportion = 0
    • updateproportion = 0
    • scanproportion = 0

    参数“recordcount”和“operationcount”的值一致。

    参数“insertproportion”、“readproportion”、“updateproportion”、“scanproportion”的值的总和为1。

  2. 使用如下命令,在数据库实例上创建测试数据库表,示例:usertable。

    ./bin/mongo --host $mongosIP --port $port << END_CMD

    use admin

    db.auth('rwuser', '$pwd')

    use ycsb

    sh.enableSharding("ycsb")

    sh.shardCollection("ycsb.usertable",{_id:"hashed"},false,{numInitialChunks:200})

    END_CMD

  3. 以业务模型workload_s1和集群实例类型为例,执行以下命令,准备数据。

    ./bin/ycsb load mongodb -s -P workloads/workload_s1 -p mongodb.url=mongodb://rwuser:${password}@${mongosIP}:8635,${mongosIP}:8635/ycsb?authSource=admin -threads ${threadNum} 1>workload_s1_load.result 2> workload_s1_load.log

  4. 以业务模型workload_s1和集群实例类型为例,执行以下命令,测试性能。

    ./bin/ycsb run mongodb -s -P workloads/workload_s1 -p mongodb.url=mongodb://rwuser:${password}@${mongosIP}:8635,${mongosIP}:8635/ycsb?authSource=admin -threads ${threadNum} -p maxexecutiontime=1800 1>workload_s1_run.result 2> workload_s1_run.log

    • ${mongosIP}为DDS集群实例下mongo节点的内网IP。
    • ${password}为DDS实例的管理员密码。
    • ${threadNum}为运行测试的并发线程数,本次测试的并发数为128。

测试模型

  • workload模型
    表3 业务模型

    业务模型编号

    业务模型

    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种预置数据量下的性能。

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

    表4 预置数据量

    规格

    预置小数据量

    预置大数据量

    2U4GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    2U8GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    4U8GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    4U16GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    8U16GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    8U32GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    16U32GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    16U64GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    32U128GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

    64U256GB

    存储容量:10GB

    RecordCount:10000000

    存储容量:100GB

    RecordCount:100000000

  • 数据一致性模型

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

分享:

    相关文档

    相关产品

close