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 # export CLASSPATH=/home/mongo-java-driver-3.2.0.jar:$CLASSPATHWiredTiger的命令行:
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 编译安装 MongoDB与mongoDB的php扩展
CentOS 6 使用 yum 安装MongoDB及服务器端配置
Ubuntu 13.04下安装MongoDB2.4.3
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]
基于CentOS 6.5操作系统搭建MongoDB服务 uxidc.com/Linux/2014-11/108900.htm