MONGODB内存使用分析
来源:互联网 发布:神武3手游数据 编辑:程序博客网 时间:2024/05/22 01:54
下午在和同事讨论mongodb在内存吃紧后,性能急剧下降的问题.同事问什么时候什么情况下mongodb性能会下降?有什么方法可以优化内存的使用?
首先我们要了解mongodb是怎么样使用内存.mongodb内存吃的快是因为mongodb对数据文件进行了file mapping,其它的部分如:index什么的并不占多少内存.当file mapping 用的内存越来越的时候,那么pages faults/sec 就会越来越高,于是性能会下降.
对于第一个问题:
- 监控系统的faults, 可以mongostat进行查看(Linux only).当faults很高的时候,mongodb性能就会下降.此时就可以考虑进行碎片整理,或者sharding了.
- db data file大了并不意味着faults一定会高.因为要看db中冷热数据的比例.
对于第二个问题:
- 进行碎片整理.因为mongodb在update一个document的时候,如果update后的document比原来的大,那么这个document会放尾巴上去.这也是有时候用mogodump一个运行中的系统会出现数据不一致性的情况的原因.只是mongodb不支持在线整理.而且它提供的db.repairDatabase()速度也比较慢. 所以想进行compact的话,可以考虑将primary关掉,然后删除所有数据文件,然后再上线.
可以运行以下命令查看是否需要进行compact
- file mapping这层基本上没什么可做的了.倒也可以考虑将热数据集中放在一起.不过这个可能相当的麻烦...
总结一下:还是要实时监控,如果faults高,或者觉得DB file size和内存比例比较大了,就要考虑碎片整理,当然这是个麻烦事.或者进行sharding,当然这也是个麻烦事.
- MONGODB内存使用分析
- MongoDB 内存使用情况分析
- MongoDB内存使用原理
- MongoDB---内存使用
- MongoDB内存使用原理
- 有关“MongoDB内存使用原理”
- Mongodb源码分析--内存文件映射(MMAP)
- Mongodb源码分析--内存文件映射(MMAP)
- Mongodb源码分析--内存文件映射(MMAP)
- Mongodb源码分析--内存文件映射(MMAP)
- Mongodb源码分析--内存文件映射(MMAP)
- nodejs使用mongodb,api分析
- mysql内存使用分析
- 使用mat分析内存
- Linux 内存使用分析
- 把MongoDB当成纯内存数据库使用
- Windows下使用WSRM限制MongoDB内存
- MongoDB实战-使用EXPLAIN分析慢查询
- 学习的态度
- 屏幕截取_Robot类
- 让弹出窗口在自己的浏览器中显示
- 第一天
- hdu--2674 求N!%2009的结果
- MONGODB内存使用分析
- Ubuntu10.04更新软件导致开机无法进入Windows7的解决
- C++文件换行符问题
- c# BUG解决经历
- Create a new Database Instance (in SILENT mode)
- Q-Kevin的编程随笔(三)
- 读《Java核心技术:卷Ⅰ基础知识》有感
- JSON 概念
- Android画图学习总结