性能数据

最近更新时间: 2026-03-13 09:03:00

本文主要介绍针对云数据库 MongoDB 实例进行标准化的性能测试,测试得出的性能数据仅供用户参考。

测试环境

  • 测试时间:2020年8月。
  • 客户端配置:云服务器 CVM 规格为8核32GB。经验证,实例规格较小时,一个8核32GB的 CVM 压测即可将副本实例 CPU 打满,且效果比多个 CVM 更好一些,当一个 CVM 压不到100%时,可用4个 CVM 均摊并发线程数来压测。

测试工具

YCSB 下载地址

测试场景

准备数据约10GB,对于每一种规格,用 YCSB 分别测试 0.5read/130618223492100096.5update 和 0.95read/130618223492100096.05update 场景下的 throughput(ops/sec)、RAL(us) 平均读时延、WAL(us) 平均写时延,主要关注100和200并发两种情况下的性能数据。

时延

CVM 到 MongoDB 实例的平均时延为0.35ms。
时延:Minimum = 0.30ms、Maximum = 0.44ms、Average = 0.35ms

相关命令

  1. 准备数据 (约10GB)
nohup ./ycsb-0.15.0/bin/ycsb load mongodb -s -P workloads/workloada
-p mongodb.url=mongodb://mongouser:password@10.216.0.30:27017,10.216.0.28:27017,10.216.0.5:27017/admin?w=0 -p table=test -threads 300 -p recordcount=10000000>loadlog.txt &

``` bash

2. 0.5read/130618223492100096.5update

nohup ./ycsb-0.15.0/bin/ycsb run mongodb -s -P workloads/workloada -p mongodb.url=mongodb://mongouser: password @10.216.0.30:27017,10.216.0.28:27017,10.216.0.5:27017/admin?w=0 -p table=test -p recordcount=10000000 -p readproportion=0.5 -p updateproportion=0.5 -p insertproportion=0 -p operationcount=100000 -threads 100 >runlog.txt &


3. 0.95read/130618223492100096.05update

nohup ./ycsb-0.15.0/bin/ycsb run mongodb -s -P workloads/workloada -p mongodb.url=mongodb://mongouser: password @10.216.0.30:27017,10.216.0.28:27017,10.216.0.5:27017/admin?w=0 -p table=test -p recordcount=10000000 -p readproportion=0.5 -p updateproportion=0.5 -p insertproportion=0 -p operationcount=100000 -threads 100 >runlog.txt &

> **说明:**
> 
> - `-p operationcount=100000`根据具体执行时间动态调整,需要保证执行时间在二十分钟以上,否则时间过短没有代表性。
> - `?w=0`中的 w 表示 write concern。
> - w:1(应答式写入)要求确认操作已经传播到指定的单个 mongod 实例或副本集主实例,缺省为1。
> - w:0(非应答式写入)不返回任何响应,所以无法知道写入是否成功,但对于尝试向已关闭的套接字写入或者网络故障会返回异常信息。
> - w:>1(用于副本集环境)该值用于设定写入节点的数目,包括主节点。

## 测试数据

### 读&更新比50:50

|MongoDB  规格|threads|throughput(ops/sec)|RAL(us)|WAL(us)|CPU 利用率|
|---------|---------|---------|---------|---------|---------|
|2核4GB|100|3188|24091|38254|100%|
|2核4GB|200|5510|34475|38022|100%|
|4核8GB|100|7058|8355|19887|100%|
|4核8GB|200|13590|14391|14983|100%|
|6核16GB|100|8970|22132|51|100%|
|6核16GB|200|10041|28696|10966|100%|
|12核32GB|100|29462|6727|35|100%|
|12核32GB|200|47815|4673|3681|100%|
|24核64GB|100|107047|1826|33|100%|
|24核64GB|200|51046|7802|27|100%|
|24核128GB|100|130811|1486|32|100%|
|24核128GB|200|49274|8054|27|100%|
|32核240GB|100|154253|1254|32|100%|
|32核240GB|200|52148|8243|1108|100%|
|48核512GB|100|174284|1103|28|100%|
|48核512GB|200|121713|3237|32|100%|

### 读&更新比95:5

|MongoDB 规格|threads|throughput(ops/sec)|RAL(us)|WAL(us)|CPU 利用率|
|---------|---------|---------|---------|---------|---------|
|2核4GB|100|2738|38216|178|100%|
|2核4GB|200|10093|20178|11561|100%|
|4核8GB|100|14380|6864|7631|100%|
|4核8GB|200|26459|7651|5369|100%|
|6核16GB|100|13707|7650|56|100%|
|6核16GB|200|45796|4383|3928|100%|
|12核32GB|100|115529|902|37|100%|
|12核32GB|200|56751|3658|31|100%|
|24核64GB|100|160227|668|29|100%|
|24核64GB|200|112755|1876|32|100%|
|24核128GB|100|159130|659|26|100%|
|24核128GB|200|112993|1936|32|100%|
|32核240GB|100|167518|634|28|74%|
|32核240GB|200|172424|1244|35|100%|
|48核512GB|100|173768|608|31|50%|
|48核512GB|200|211986|1012|33|85%|