168大数据

标题: MongoDB 3.0性能提升内幕:WiredTiger [打印本页]

作者: 168主编    时间: 2015-6-12 09:35
标题: MongoDB 3.0性能提升内幕:WiredTiger

MongoDB出现是个意外,最初的想法是构建一个用于开发、托管并具有自动缩放Web应用程序的在线服务,而不是数据库。结果无心插柳柳成荫,却成就了全球最流行的NoSQL数据库,如今的MongoDB已经有900万下载,使用MongoDB的用户包括财富500公司如eBay, Cisco, MetLife, Adobe等等。相比于传统关系数据库,MongoDB对于大数据,高并发以及高可靠性支持更好。适用于各种应用场景如CRM,内容管理,事件纪录,商情分析,手机应用,社交等。


▲MongoDB大中华区首席技术顾问唐建法

  近日,在国内数据库与大数据领域最大规模的技术盛宴,2015第六届中国数据库技术大会(DTCC)上,NoSQL专场中,来自MongoDB大中华区首席技术顾问唐建法给我们带来了《如何在3.0实现7-10倍性能提升》的精彩演讲。MongoDB作为NoSQL数据库中毋庸置疑的领头羊,最近发布了3.0版本。较之上一个版本2.6, 3.0性能有了极大的提升。3.0中究竟是如何实现了这样的性能飞跃?如何使用新的存储引擎WiredTiger?WiredTiger的性能调试参数如何设置?WiredTiger的坑又有那些呢?

  MongoDB 3.0版本故事与性能提升之秘

  MongoDB 3.0其实是2.8,上个版本是2.6,为什么将2.8命名为3.0?唐建法表示2.8有了极大的增强,用2.8有点委屈,因此MongoDB市场部主导命名为3.0。唐建法坦言MongoDB 3.0之前性能确实很有问题,相比2.6,唐建法认为3.0核心变化是增加了(收购而来)的高性能、可伸缩的数据存储引擎WiredTiger。从而使得MongoDB 3.0性能相比2.6得到了极大的提升,尤其是写性能和对硬件资源的利用率。

  从MongoDB最初版本一直到2.6都只支持一种基于内存映射技术的存储引擎即MMAP。MongoDB 3.0实现对支持集合级锁的存储引擎MMAP和支持压缩和文档级锁的存储引擎WiredTiger的支持。

  值得注意的是,这次3.0的发布,MongoDB官方也同步发布了一份性能测试报告,这绝对是MongoDB有史以来第一份官方测试报告。

  并发量:

  在YCSB测试中,MongoDB3.0在多线程、批量插入场景下较之于MongoDB2.6有大约7倍的增长。第二次测试比较了两个系统上 95%读取和5%更新的场景。可以看到WiredTiger 有4倍多的吞吐量。相比于刚才的纯插入场景,这次的性能提升没有那么显著,因为写操作只占所有操作的5%。最后,对于读写操作平衡的场景,可以看到 MongoDB3.0有6倍的并发率。这比刚才看到的95%读 的4倍提高要好一些,因为这里有更多的写操作。

  响应延迟:

  通过读密集型的工作负荷来比较更新响应延迟的95th和99th百分位数 。在MongoDB3.0中更新延时显著改善了,在95th和99th百分位数中几乎减少了90%。

  如何正确使用WiredTiger?

  看完性能测试报告,你是否有一种急切体验的冲动呢?别急,使用请仔细阅读以下注意事项:MongoDB3.0默认引擎还是MMAP,因此使用前必须加上wiredtiger参数。

  WiredTiger主要参数

  特别提示MongoDB一向是吃内存的老虎,这点不变,建议缓存多给点。

  WiredTiger很强大,但也有坑,使用时请注意规避








欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2