DDT 全量测试

测试环境

硬件资源配置如下:

  • CPU:40核,Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
  • 内存:4*32G
  • 网卡:1Gbps
  • 操作系统:Linux x86_64
  • MongoDB 版本:0.1
  • 硬盘:SSD

测试条件

测试数据涵盖以下维度:时延、QPS、CPU使用率、内存使用率。所有值均由 10 秒的平均值给出。

QPS来自数据平台的日志输出信息,每秒统计OPLOG写入次数;我们还给出了 CPU 和内存使用情况。

测试结果

当cacheBucketSize=32  cacheBucketNum=32  dataBatchSize=128 时:

测试一

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize为30GB
目标MongoDB:单节点副本集,cacheSize为30GB
数据量 一个db共10个集合,每个文档包含7列,每个oplog文档的总大小约为140字节。
源端读取线程数 5
目标端写入线程数 15
缓存区 cacheBucketSize=32
cacheBucketNum=32
dataBatchSize=128

测试结果:

测量 描述
QPS 145062
CPU使用率 400%
内存使用情况 13631MB

测试二

配置信息

参数 介绍
MongoDB类型 源端MongoDB:单节点副本集,cacheSize30GB
目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节。
源端读取线程数 6
目标端写入线程数 20
缓存区 cacheBucketSize=32
cacheBucketNum=32
dataBatchSize=128

测试结果

测量 描述
QPS 160837
CPU使用率 440%
内存使用情况 16384MB

测试三

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB
目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节。
源端读取线程数 6
目标端写入线程数 24
缓存区 cacheBucketSize=32
cacheBucketNum=32
dataBatchSize=128

测试结果

描述 测量
QPS 155232
CPU使用率 440%
内存使用情况 15860MB

统计

缓存区 cacheSize 源端读取线程数 目标端写入线程数 QPS 内存使用情况 CPU使用率
cacheBucketSize=32 cacheBucketNum=32 dataBatchSize=128 30GB 5 15 145062 13631MB 400%
6 20 160837 16384MB 440%
6 24 155232 15860MB 440%

img_11.png img_12.png

总结:当cacheBucketSize=32,cacheBucketNum=32,dataBatchSize=128时,可以看出当线程数增加的时:

(1)不会提高QPS,原因是读取量小于写入量;

(2)内存使用率不会提升,原因是cache缓存区有限制。


当cacheBucketSize=48  cacheBucketNum=48  dataBatchSize=128 时:

测试一

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB;目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节
源端读取线程数 5
目标端写入线程数 15
缓存区 cacheBucketSize=48 cacheBucketNum=48 dataBatchSize=128

测试结果

测量 描述
QPS 315702
CPU使用率 400%
内存使用情况 31326MB

测试二

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB
目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节
源端读取线程数 6
目标端写入线程数 20
缓存区 cacheBucketSize=48
cacheBucketNum=48
dataBatchSize=128

测试结果

测量 描述
QPS 340716
CPU使用率 800%
内存使用情况 24773MB

测试三

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB
目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节
源端读取线程数 6
目标端写入线程数 24
缓存区 cacheBucketSize=48
cacheBucketNum=48
dataBatchSize=128

测试结果

测量 描述
QPS 367178
CPU使用率 880%
内存使用情况 23986MB

测试四

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB
目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节
源端读取线程数 8
目标端写入线程数 24
缓存区 cacheBucketSize=48
cacheBucketNum=48
dataBatchSize=128

测试结果

测量 描述
QPS 371528
CPU使用率 1120%
内存使用情况 27132MB

统计

缓存区 cacheSize 源端读取线程数 目标端写入线程数 QPS 内存使用情况 CPU使用率
cacheBucketSize=48 cacheBucketNum=48 dataBatchSize=128 30GB 5 15 315702 31326MB 400%
6 20 340716 24773MB 800%
6 24 367178 23986MB 880%
8 24 371528 27132MB 1120%

img_13.png

img_14.png

总结:当cacheBucketSize=48,cacheBucketNum=48,dataBatchSize=128时,可以看出当线程数增加的时:

(1)提高QPS。


当cacheBucketSize=64  cacheBucketNum=64  dataBatchSize=128 时:

测试一

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB 目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节
源端读取线程数 5
目标端写入线程数 15
缓存区 cacheBucketSize=64 cacheBucketNum=64 dataBatchSize=128

测试结果

测量 描述
QPS 370042
CPU使用率 812%
内存使用情况 25159MB

测试二

配置信息

测量 描述
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB 目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节。
源端读取线程数 6
目标端写入线程数 20
缓存区 cacheBucketSize=64 cacheBucketNum=64 dataBatchSize=128

测试结果

测量 描述
QPS 390000
CPU使用率 1080%
内存使用情况 26522MB

测试三

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB 目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节。
源端读取线程数 6
目标端写入线程数 24
缓存区 cacheBucketSize=64 cacheBucketNum=64 dataBatchSize=128

测试结果

测量 描述
QPS 400138
CPU使用率 1160%
内存使用情况 26655MB

测试四

配置信息

参数 介绍
MongoDB 类型 源端MongoDB:单节点副本集,cacheSize30GB 目标MongoDB:单节点副本集,cacheSize30GB
数据量 一个DataBase共10个集合,每个文档包含7列,每个文档的总大小约为140字节。
源端读取线程数 8
目标端写入线程数 24
缓存区 cacheBucketSize=64 cacheBucketNum=64 dataBatchSize=128

测试结果

测量 描述
QPS 360209
CPU使用率 1120%
内存使用情况 25252MB

统计:

缓存区 cacheSize 源端读取线程数 目标端写入线程数 QPS 内存使用情况 CPU使用率
cacheBucketSize=64 cacheBucketNum=64 dataBatchSize=128 30GB 5 15 370042 25159MB 812%
6 20 390000 26522MB 1080%
6 24 400138 26655MB 1160%
8 24 360209 25252MB 1120%

总结:当cacheBucketSize=64,cacheBucketNum=64,dataBatchSize=128时,可以看出当线程数增加的时:

(1)会提高QPS,但是效果不明显,同时当线程数较大增加时,CPU使用率也会略有下降。

img_15.png

img_16.png

总结:

(1)CPU与QPS:

img_21.png

(2)内存使用情况与QPS:

img_22.png

results matching ""

    No results matching ""