码迷,mamicode.com
首页 > 数据库 > 详细

mongodb第十一篇文章~mongodb的引擎解读

时间:2017-12-04 14:57:03      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:使用   数字   对比   命名   snap   存储引擎   2.x   物理内存   存储方式   

一 简介 WiredTiger引擎调优技

二 两种引擎对比概念

  从3.2.x开始,WiredTiger成为默认的存储引擎。最为MongoDB目前最流行的存储引擎,WiredTiger与原先的MMAPV1相比有以下优势:

  1 性能&并发:在大多数工作负载下,WiredTiger的性能要比MMAPV1高很多。WiredTiger引擎为现代多核系统量身定制,更好地发挥多核系统的处理能力。MMAPV1引擎使用表级锁,因此,当某个单表上有并发的操作,吞吐将受到限制。WiredTiger使用文档级锁,由此带来并发及吞吐的提高。对于典型的应用,切到WiredTiger引擎,可带来5-10倍的性能提升。

 2  压缩&加密:MMAPV1引擎要求数据在内存和在磁盘的形式一致(map磁盘内存映射)。因此,它并不支持压缩和加密。WiredTiger并没有这层限制,可以更好地支持。

3   索引前缀压缩:WiredTiger存储索引时使用前缀压缩——相同的前缀只存一次。由此带来的效果是:索引更小了,对物理内存使用也更少了。

4   数据存储方式: 两种存储引擎采用了不同的存储引擎,是没办法直接替换软件目录进行升级的,只能初始化重新同步或者导入,wt引擎生产的数据和索引文件以wt为结尾,jr日志命名为WiredTigerPreplog开头1三 WiredTiger 参数

 一  wiredTigerCacheSizeGB=48
含义
   1 cacheSizeGB 指的就是Cache size,包括数据和索引。Mongod本身使用内存如连接池堆栈以及sorting buffer等都是额外的,不会被统计到这个数字里面。
   2 MongoDB在做诸如聚合、排序、连接管理等操作时需要额外的内存。因此,必须确保有足够的内存可供使用,否则,MongoDB进程有被OOM killer杀死的风险。
     和mysql的innodb_buffer_pool很像呢,数据索引放在内存里,排序需要额外的内存
2 推荐配置
   服务器内存X75%
3 查看状态命令
   db.serverStatus().wiredTiger.cache
二  wiredTigerDirectoryForIndexes=true
1  含义
    Index文件和数据文件分离,索引一个目录,数据一个目录。
    去具体的collection目录下可以发现
    collection index 两个目录
三  wiredTigerDirectoryForIndexes=true
1 含义
   是否开启索引的前缀压缩,这里影响所有DB的索引。它会一次存储所有前缀一样的索引,
   减少内存、磁盘IO的消耗,默认开启。
四  wiredTigerCollectionBlockCompressor=snappy
1 含义
   采用何种压缩方式 默认snappy 不建议采用zlib方式,会加重CPU的负担

五 以后有的会继续补充

mongodb第十一篇文章~mongodb的引擎解读

标签:使用   数字   对比   命名   snap   存储引擎   2.x   物理内存   存储方式   

原文地址:http://www.cnblogs.com/danhuangpai/p/7976834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!