性能白皮书

 

测试方法

更新时间 2023-09-06

本小节主要介绍如何使用 YCSB 对 MongoDB Cluster 进行性能测试。

测试场景

通用测试场景有如下 6种:

场景 说明
workloada 读写均衡型,Reads/Writes 50:50
workloadb 读多写少型,Reads/Writes 95:5
workloadc 只读型,Reads 100%
workloadd 读最近写入记录型,Reads/Insert 95:5
workloade 扫描小区间型,Scan/Insert 95:5
workloadf 读写入记录均衡型,Reads/Insert 50:50

测试步骤

  1. 创建云服务器,配置云服务器与 MongoDB Cluster 集群在相同可用区、VPC、私有网络和安全组。

  2. 在云服务器上安装 YCSB 测试工具。

  3. 在云服务器上准备测试数据。

    $ ./bin/ycsb.sh load  mongodb -s -P ./workloads/<workload_config>  -p mongodb.url=mongodb://<mongodb_user_name>:<mongodb_user_password><mongos_ip>:<mongos_port>/ycsb?authSource=admin -p mongodb.writeConcern=unacknowledged >loadlog.txt &
    
  4. 在云服务上执行相关测试命令。

    $ ./bin/ycsb.sh run mongodb -s -P ./workloads/<workload_config> -p mongodb.url=mongodb://<mongodb_user_name>:<mongodb_user_password>@<mongos_ip>:<mongos_port>/ycsb?authSource=admin -p mongodb.upsert=true -threads <threads_number> -p mongodb.writeConcern=<writeConcern_mode> >runlog.txt & 
    

命令参数说明

参数 说明 取值示例
-P 表示指定读取的配置文件。 ./workloads/< workload_config > 表示指定测试场景配置文件。 ./workloads/workloada
-p mongodb.url 表示指定 Mongos 连接地址。 -
authSource 表示指定用户认证库。若未开启用户认证,可忽略。 admin
-p mongodb.upsert 表示指定操作类型。
  • 取值 true 表示执行更新操作 ;
  • 取值 false 表示执行插入操作 。
  • true
    -threads 表示指定并发线程数。 100
    -p mongodb.writeConcern 表示指定写入策略。
  • 取值 acknowledged 表示应答式写入模式。要求确认操作已经传播到指定的单个 mongod 实例或副本集主实例,缺省为1。
  • 取值 unacknowledged 表示非应答式写入模式。不返回任何响应,所以无法知道写入是否成功,但对于尝试向已关闭的套接字写入或者网络故障会返回异常信息。
  • 取值 majority 用于副本集环境,要求写入操作已经传递到绝大多数投票节点以及主节点后进行应答。
  • unacknowledged
    这篇文档解决了您的问题吗?
    0
    0