Sink

沉舟侧畔千帆过

  • 主页
  • 归档
  • 书籍
  • 书签
  • 技能树
  • 工具箱
  • LeetCode
  • 关于我
所有文章 友情链接 +1s

  • 主页
  • 归档
  • 书籍
  • 书签
  • 技能树
  • 工具箱
  • LeetCode
  • 关于我

MongoDB从2.6升级到3.0

Published on 2015 / 05 / 04 , Updated on 2015 / 07 / 13

一个爬虫项目,数据存储使用的 MongoDB 2.6,按网站和月份划分数据库。每次到月末,存储性能就大幅下降,mongostat查看是锁操作花费太多的时间。

MongoDB 2.6 默认的MMAP引擎只支持数据库锁,虽然做过一些优化,但是在我这实际用起来发现效果并不是很好。
想要降低锁操作的时间,要么减少数据库体积,要么就换引擎。前者需要拆分出更多的数据库,不方便管理,就只能在引擎上下手。

MongoDB 3.0 自三月份正式发布已经快两个月,应该趋于稳定。3.0除了将默认的存储引擎MMAP升级到支持集合锁,更是带入了支持文档锁的WiredTiger引擎。本着试一试的想法,最近把MongoDB升级到了3.0,引擎切换到 WiredTiger,结果是在没做其他优化的情况下解决了爬虫存储性能下降的问题。:P

  • 升级的步骤可以参见官方文档。
  • WiredTiger引擎还可以开启数据压缩,据说可以大幅降低空间占用,提升内存的效率。现在爬虫系统还没遇到新的瓶颈,就不做尝试了,之后可以在这个点上进行进一步的优化。
  • 3.0之后出的修复版本,更新内容很多都是修复WiredTiger引擎的问题的,希望 WT 引擎早日稳定。
  • MMAP引擎和WiredTiger的数据文件不兼容,单库切换引擎需要将旧的数据使用mongoexport全部导出,在使用mongoimport重新导入。
赏

很惭愧,就做了一点微小的工作

支付宝
微信
数字指纹用法
Deepin 2014.3 已经发布
Copyrights © 2009 - 2025 Sink. All Rights Reserved.
Hexo Illya
  • 所有文章
  • 友情链接
  • +1s

tag:

  • ubuntu
  • dns
  • deepin
  • rfc
  • django
  • database
  • work
  • python
  • greenplum
  • postgres
  • how-to
  • linux
  • react
  • firefox
  • nginx
  • vijos
  • go
  • toml
  • tools
  • usaco
  • IPv6
  • gpg

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 浮云计算
  • 成成个人学习小站
  • Victor 的自留地
  • amtoaer
  • lxkaka
  • 酷壳CooShell
  • 曜彤.手记

一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。

很惭愧,就做了一点微小的工作,谢谢大家。