MongoDB 3.2版WiredTiger存储引擎性能测试

MongoDB 3.2于最近发布了,它使用WiredTiger作为其默认的存储引擎。这五年来,MongoDB从诞生到流行,发展可谓是相当迅猛。

MongoDB 3.0就开始支持“可插拔的存储引擎”功能,因此在3.2版使用WiredTiger也在情理之中。WiredTiger引擎基于B-Tree算法,B-tree即多路搜索树,非二叉树,是一种常见的数据结构,使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。B是Balance的简称,B-Tree数据结构一般用于数据库的索引,综合效率较高。

以B-Tree算法为基础的WiredTiger引擎的执行性能应优于针对IO优化的RocksDB和PerconaFT,但是WiredTiger 3.0引擎存在IO性能衰减问题。有报道说,WiredTiger 3.2引擎的性能在3.0版的基础上有了较大的提升,下面可以看看WiredTiger 3.2引擎的基准测试情况。测试不仅关注其性能,还关注在检查点的执行情况。

测试使用iiBench工具,此工具地址见: https://github.com/mdcallag/iibench-mongodb

iibench-mongodb工具使用需求:

  • Java 1.6或1.7版
  • MongoDB的Java驱动必须包含到类路径下

比如CLASSPATH中:

# cd /home
# wget http://central.maven.org/maven2/org/mongodb/mongo-java-driver/3.2.0/mongo-java-driver-3.2.0.jar
# export CLASSPATH=/home/mongo-java-driver-3.2.0.jar:$CLASSPATH

WiredTiger的命令行:

numactl --interleave=all ./mongod --dbpath=/mnt/i3600/mongo/ --storageEngine=wiredTiger --syncdelay=900 --wiredTigerCacheSizeGB=10 --wiredTigerJournalCompressor=none

服务器情况:

  • 存储设备: Intel SSD DC P3600 SSD 1.6TB
  • 主机CPU: Bare Metal powered by Intel(R) Xeon(R) CPU E5-2680
  • 测试数据集:2亿条记录,单个索引

测试结果如图所示:
这里写图片描述

WiredTiger 3.2引擎确实更快。执行完成WiredTiger 3.2引擎花了31分钟,而WiredTiger 3.0引擎花了51分钟。

但是,WiredTiger 3.2引擎仍然存在一些问题。在测试期间,WiredTiger有一分钟左右的时间拒绝处理数据。

更多MongoDB相关教程见以下内容

基于CentOS 6.5操作系统搭建MongoDB服务 http://www.linuxidc.com/Linux/2014-11/108900.htm

MongoDB 的详细介绍请点这里
MongoDB 的下载地址请点这里

猜你喜欢

转载自www.linuxidc.com/Linux/2016-01/126999.htm