集成 TerichDB 的 MongoDB 性能测试

Posted Terark-CTO-雷鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成 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 被压缩+合并成了一个

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

3.1.内存64GB的场景

3.1.1.读吞吐量(Read Throughput, ops/sec)

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

3.1.3.读95/99分位延迟

3.2.内存4GB的场景

3.2.1.读吞吐量(Read Throughput, ops/sec)

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

3.3.3.读95/99分位延迟

4.写性能测试

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

4.1.内存64GB场景

4.1.1.写吞吐量

4.1.2.写平均延迟

4.1.3.写95/99分位延迟

以上是关于集成 TerichDB 的 MongoDB 性能测试的主要内容,如果未能解决你的问题,请参考以下文章

集成TerichDB的SSDB性能测试

集成TerichDB的SSDB性能测试

TerichDB架构简介

TerichDB架构简介

Mongo on TerarkDB 性能评测

Mongo on TerarkDB 性能评测