You need to enable JavaScript to run this app.
导航
性能白皮书
最近更新时间:2024.03.29 10:07:10首次发布时间:2022.04.25 13:58:59

本文介绍以 YCSB 压测工具测试文档数据库 MongoDB 版实例性能的详细方法和测试结果,您可以按照本文介绍自行测试对比,快速了解数据库系统的性能。

测试环境

  • 测试所用的 ECS 实例和文档数据库 MongoDB 版实例均在同一地域、同一可用区。本测试中为华北 2(北京)可用区 A。

  • 网络类型均为私有网络 VPC,且 ECS 实例和 MongoDB 实例均在同一个 VPC 中。

  • 测试所用文档数据库 MongoDB 版实例:

    • 各规格的副本集实例。关于 MongoDB 实例规格的更多信息,请参见产品规格
    • 数据库版本均为 MongoDB 4.0。
  • 测试所用 ECS 实例:

    • ECS 配置:4 个规格为 4vCPU、32GiB 规格的内存型 ECS 实例(规格码ecs.r1.xlarge)。
    • 操作系统版本:Debian 10/64 位。

测试工具

本测试中使用的工具为 YCSB。YCSB 是一款由 Java 语言实现的支持多种数据库的性能测试工具,具体安装和使用方法请参见 YCSB

测试命令

本测试中使用了如下命令进行性能测试:

  1. 修改 workloada 配置中的 recordcountoperationcountreadproportionupdateproportion 等参数的取值。

    说明

    • 对于不同的实例规格,recordcountoperationcount 参数设置的值有所不同。更多详情,请参见测试结果详情
    • 读写比为 50:50 的测试中,readproportionupdateproportion 取值均为 0.5。
    • 读写比为 95:5 的测试中,readproportionupdateproportion 取值分别为 0.95 和 0.05。
  2. 执行如下命令准备测试数据。

    ./bin/ycsb load mongodb -s -P workloads/workloada -p mongodb.url=mongodb://ip:port/ycsb?w=0 -threads xx > outputLoad.txt
    
  3. 执行如下命令开始性能压测。

    说明

    开启 operationProfiling.mode 参数可能会影响实例性能,建议进行性能压测前先将参数值设置为 off。参数设置方法,请参见修改实例参数

    ./bin/ycsb run mongodb -s -P workloads/workloada  -p mongodb.url=mongodb://ip:port/ycsb?w=0 -threads xx > outputRun.txt
    

测试结果

本文中不同规格实例的测试结果,均为执行 3 次相同压测命令后得到的平均结果。

衡量指标说明

衡量指标单位说明
countrecordcount(已经存在的记录数)和 operationcount(待执行的操作数)的总数。
threads客户端测试所用线程数总和。测试所有规格实例时,均使用了 100 个线程。
throughputops/s客户端测试吞吐数(即读写操作数)。
RALμs读操作平均延迟。
WALμs写操作平均延迟。

测试结果详情

  • 读写比为 50:50 的测试结果

    实例规格countthreadsthroughputRALWAL
    1 核 2GiB100000010041982293240109
    2 核 4GiB200000010084791213019220
    4 核 8GiB40000001001665461919785
    4 核 16GiB80000001001704160359587
    8 核 32GiB160000001003308030644985
    16 核 64GiB320000001006352915622625
    16 核 128GiB1000000001006041515582846
    32 核 256GiB1000000001001185845961066
  • 读写比为 95:5 的测试结果

    实例规格countthreadsthroughputRALWAL
    1 核 2GiB100000010069881860425433
    2 核 4GiB2000000100128641023512143
    4 核 8GiB40000001002650149785761
    4 核 16GiB80000001002615950435918
    8 核 32GiB160000001005127025733020
    16 核 64GiB3200000010010036513121556
    16 核 128GiB1000000001009484213321625
    32 核 256GiB100000000100193526679811