集成 TerichDB 的 MongoDB 性能测试

1.前言

我们将 TerichDB 集成到了 MongoDB 社区版中,后续我们将逐步发布性能测试报告,目前,我们分别进行了读、写性能测试。

2.测试方式

  • 测试工具
  • 测试数据
  • 测试数据集尺寸
    • 约为9.1GB
    • 约800万条数据
    • 平均每条数据大约1KB
  • MongoDB的存储引擎采用的是Wiredtiger,后文将以此表示原始的MongoDB

3.读性能测试

对读性能的测试,我们分别使用了64GB和4GB内存的场景(即内存充足和内存不足),同时在开始读性能测试之前,首先批量的将所有数据写入数据库,重启服务器后进行测试。

这个测试是 client-server 模式的,并且仅使用了一个 client 连接(相当于单线程),所以您在这里看到的不同存储引擎(以及不同配置下)的性能(QPS 和 Latency)差异被大大缩小了,点击这里查看:存储引擎本身的裸性能(baremetal performance)对比

除了限制内存,我们针对TerichDB的不同实际场景也进行了对比(图表中名称以此区分):
- mongo_TerichDB 1:TerichDB有两个ReadOnly Segment和一个Writable Segment
- mongo_TerichDB 2:TerichDB有三个ReadOnly Segment,没有Writable Segment(即Writable Segment被压缩了)
- mongo_TerichDB3:TerichDB只有一个ReadOnly Segment,即所有的 Segment 被压缩+合并成了一个

由于压缩率与机器的内存无关,以下两种内存情况的压缩率均为:

compress_ratio.png

3.1.内存64GB的场景
3.1.1.读吞吐量(Read Throughput, ops/sec)

mem64g_read_ops.png

3.1.2.读平均延迟(Read Average Latency, us)

mem64g_read_average_latency.png

3.1.3.读95/99分位延迟

mem64g_read_95_99_percentile.png

3.2.内存4GB的场景
3.2.1.读吞吐量(Read Throughput, ops/sec)

mem4g_read_ops.png

3.2.2.读平均延迟(Read Average Latency, us)

mem4g_read_average_latency.png

3.3.3.读95/99分位延迟

mem4g_read_95_99_percentile.png

4.写性能测试

目前TerichDB暂时使用的是Wiredtiger的写入层,所以写性能目前差别不是很大,我们初步对64GB内存是进行了写入测试

4.1.内存64GB场景
4.1.1.写吞吐量

mem64g_write_ops.png

4.1.2.写平均延迟

mem64g_write_averate_latency.png

4.1.3.写95/99分位延迟

mem64g_write_95_99_percentile.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用和引用,MongoDB性能测试包括了在服务器上进行了5亿数据级别的插入和查询测试,并考虑了GridFS和组合索引的性能。测试中使用了单进程的MongoDB和三个MongoDB进程作为Sharding的两种方案。有关性能方面的具体结果可以参考测试数据和图表。 此外,引用提到在使用Sharding时,MongoDB会时不时对数据进行拆分和搬迁,这可能会导致性能下降。作者建议手动切分数据库或手动创建历史库,而不依赖自动化的Sharding。个人认为,对于MongoDB来说,单个数据库存储不超过1亿条数据比较合适,如果需要存储更大的数据量,最好手动进行分库操作。 总结来说,MongoDB性能测试是通过插入和查询大量数据进行的,考虑了不同的索引和Sharding方案。在实际使用中,需要注意Sharding可能导致的性能下降,可以考虑手动分库来优化性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MongoDB性能测试报告](https://download.csdn.net/download/wuqinlong/7088723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [软件测试之Mongodb亿级数据量的性能测试(必看)](https://blog.csdn.net/PythonCS001/article/details/107565443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值