集成 TerichDB 的 MongoDB 性能测试
2016-06-22 13:10
597 查看
1.前言
我们将 TerichDB 集成到了 MongoDB 社区版中,后续我们将逐步发布性能测试报告,目前,我们分别进行了读、写性能测试。2.测试方式
测试工具YCSB(https://github.com/brianfrankcooper/YCSB)
测试数据
由于YCSB的数据都是纯随机字符串生成的,离用户的真实场景相差较大,我们采用了Amazon movie data (~8 million reviews)数据进行测试
测试数据集尺寸
约为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分位延迟
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 我是运营,我没有假期
- 如何在 Ubuntu 上安装 MongoDB
- Java IO与NIO的一些文件拷贝测试
- 信息安全聚合 Sec-News 的重构之路
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 修复mysql数据库
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- 简述MySQL分片中快速数据迁移
- MySQL数据备份之mysqldump的使用详解
- C#实现窗体间传递数据实例
- C#中的委托数据类型简介