本文介绍以 YCSB 压测工具测试文档数据库 MongoDB 版实例性能的详细方法和测试结果,您可以按照本文介绍自行测试对比,快速了解数据库系统的性能。
测试所用的 ECS 实例和文档数据库 MongoDB 版实例均在同一地域、同一可用区。本测试中为华北 2(北京)可用区 A。
网络类型均为私有网络 VPC,且 ECS 实例和 MongoDB 实例均在同一个 VPC 中。
测试所用文档数据库 MongoDB 版实例:
测试所用 ECS 实例:
ecs.r1.xlarge
)。本测试中使用的工具为 YCSB。YCSB 是一款由 Java 语言实现的支持多种数据库的性能测试工具,具体安装和使用方法请参见 YCSB。
本测试中使用了如下命令进行性能测试:
修改 workloada 配置中的 recordcount
、operationcount
、readproportion
和 updateproportion
等参数的取值。
说明
recordcount
和 operationcount
参数设置的值有所不同。更多详情,请参见测试结果详情。readproportion
和 updateproportion
取值均为 0.5。readproportion
和 updateproportion
取值分别为 0.95 和 0.05。执行如下命令准备测试数据。
./bin/ycsb load mongodb -s -P workloads/workloada -p mongodb.url=mongodb://ip:port/ycsb?w=0 -threads xx > outputLoad.txt
执行如下命令开始性能压测。
说明
开启 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 次相同压测命令后得到的平均结果。
衡量指标 | 单位 | 说明 |
---|---|---|
count | 个 | recordcount (已经存在的记录数)和 operationcount (待执行的操作数)的总数。 |
threads | 个 | 客户端测试所用线程数总和。测试所有规格实例时,均使用了 100 个线程。 |
throughput | ops/s | 客户端测试吞吐数(即读写操作数)。 |
RAL | μs | 读操作平均延迟。 |
WAL | μs | 写操作平均延迟。 |
读写比为 50:50 的测试结果
实例规格 | count | threads | throughput | RAL | WAL |
---|---|---|---|---|---|
1 核 2GiB | 1000000 | 100 | 4198 | 22932 | 40109 |
2 核 4GiB | 2000000 | 100 | 8479 | 12130 | 19220 |
4 核 8GiB | 4000000 | 100 | 16654 | 6191 | 9785 |
4 核 16GiB | 8000000 | 100 | 17041 | 6035 | 9587 |
8 核 32GiB | 16000000 | 100 | 33080 | 3064 | 4985 |
16 核 64GiB | 32000000 | 100 | 63529 | 1562 | 2625 |
16 核 128GiB | 100000000 | 100 | 60415 | 1558 | 2846 |
32 核 256GiB | 100000000 | 100 | 118584 | 596 | 1066 |
读写比为 95:5 的测试结果
实例规格 | count | threads | throughput | RAL | WAL |
---|---|---|---|---|---|
1 核 2GiB | 1000000 | 100 | 6988 | 18604 | 25433 |
2 核 4GiB | 2000000 | 100 | 12864 | 10235 | 12143 |
4 核 8GiB | 4000000 | 100 | 26501 | 4978 | 5761 |
4 核 16GiB | 8000000 | 100 | 26159 | 5043 | 5918 |
8 核 32GiB | 16000000 | 100 | 51270 | 2573 | 3020 |
16 核 64GiB | 32000000 | 100 | 100365 | 1312 | 1556 |
16 核 128GiB | 100000000 | 100 | 94842 | 1332 | 1625 |
32 核 256GiB | 100000000 | 100 | 193526 | 679 | 811 |