单节点实例高连接能力测试

本文通过ECS访问云数据库MongoDB,测试云数据库MongoDB单节点实例的高连接能力。

准备工作

  1. 创建ECS实例和云数据库MongoDB单节点实例。如何创建,请参见创建单节点实例创建ECS实例

    本测试的实例配置如下:

    配置项

    ECS实例

    云数据库MongoDB单节点实例

    说明

    地域及可用区

    华东1(杭州)可用区H

    华东1(杭州)可用区H

    ECS实例和云数据库MongoDB单节点实例在同一地域及可用区。

    网络类型

    专有网络VPC

    专有网络VPC

    ECS实例和云数据库MongoDB单节点实例在同一VPC。

    CPU和内存

    16核 128 GB

    • 规格类型:8核 32 GB

    • 磁盘空间:200 GB

    不涉及

    实例规格族

    ecs.hfr6

    通用型

    实例规格

    ecs.hfr6.4xlarge

    dds.sn4.2xlarge.1

    存储类型

    ESSD云盘

    ESSD云盘

    实例或镜像版本

    Alibaba Cloud Linux 3.2104 LTS 64

    MongoDB 4.0

  2. ECS实例的主私网IP添加到云数据库MongoDB单节点实例的白名单中。如何添加,请参见设置白名单

  3. ECS实例上安装开源社区的YCSB工具。如何安装和使用,请参见YCSB

测试步骤

  1. 登录ECS控制台,远程连接ECS实例。如何连接,请参见连接ECS实例

  2. 执行如下测试命令,加载数据至云数据库MongoDB单节点实例。

    ./bin/ycsb load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=30000000 -p mongodb.url="mongodb://root:123456Aa@dds-bp13e84d111a1a****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8

    您需要替换如下参数值:

    • 123456Aa:云数据库MongoDB单节点实例的root账号密码。

    • dds-bp13e84d111a1a****.mongodb.rds.aliyuncs.com:3717:云数据库MongoDB单节点实例的主节点连接地址。

      说明

      您可以登录云数据库MongoDB控制台,在数据库连接页面的私网连接 - 专有网络区域查看连接地址。

  3. 启动YCSB进程,根据不同场景进行读写测试。

    场景

    测试命令

    说明

    并发数为8

    ./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=30000000 -p operationcount=50000000 -p readproportion=0.5 -p updateproportion=0.5 -p requestdistribution=zipfian -p mongodb.url="mongodb://root:123456Aa@dds-bp13e84d111a1a****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8

    您需要替换如下参数值:

    • 123456Aa:云数据库MongoDB单节点实例的root账号密码。

    • dds-bp13e84d111a1a****.mongodb.rds.aliyuncs.com:3717:云数据库MongoDB单节点实例的主节点连接地址。

      说明

      您可以登录云数据库MongoDB控制台,在数据库连接页面的私网连接 - 专有网络区域查看连接地址。

    并发数为2000

    ./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=30000000 -p operationcount=50000000 -p readproportion=0.5 -p updateproportion=0.5 -p requestdistribution=zipfian -p mongodb.url="mongodb://root:123456Aa@dds-bp13e84d111a1a****.mongodb.rds.aliyuncs.com:3717/admin" -threads 2000

    并发数为10000

    ./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=30000000 -p operationcount=50000000 -p readproportion=0.5 -p updateproportion=0.5 -p requestdistribution=zipfian -p mongodb.url="mongodb://root:123456Aa@dds-bp13e84d111a1a****.mongodb.rds.aliyuncs.com:3717/admin" -threads 10000
  4. 查看云数据库MongoDB单节点实例的连接数。

    1. 访问MongoDB副本集实例列表,在上方选择资源组和地域,然后单击目标实例ID。

    2. 在目标实例页面的左侧导航栏,单击监控信息

    3. 基本监控的页签下,选择时间,查看实例的CPU使用率(%)操作QPS数(个)连接数

      场景

      CPU使用率

      操作QPS

      连接数

      并发数为8

      并发数为8的CPU使用率

      并发数为8的QPS数

      并发数为8的连接数

      并发数为2000

      并发数为2000的CPU

      并发数为2000的QPS

      并发数2000的连接数

      并发数为10000

      并发数10000的CPU使用率

      并发数10000的QPS

      并发数为10000的连接数

测试结果

  • 规格为8核 32 GB的云数据库MongoDB单节点实例有能力承受10000个连接。

  • 连接实例会占用实例的一部分CPU资源,建议将连接数控制在一定范围内。

  • 并发数增加到一定数量后,CPU使用率和操作QPS数不再随着并发数的增加而提高。您需要根据自身业务情况,合理控制并发数。