本文仅限于mongodb3.0.0(wiredtiger引擎)

一.mongodb内存使用

1.热数据

这一点是SQL和nosql之间的巨大差距,将热数据存在内存相当于自带cache,若wiredtigercache大小控制合理,此处内存性价比相当高。

2.索引

跟热数据同样

3.连接所消耗内存

这里算是与SQL基本相同的一部分

二.监控

1.wiredtigercache

2.mongodb所占用内存

3.mongodb读取数据与IO数据

三.优化

1.热数据

上面说此处占用内存为cache,可以通过wiredtigercache进行上限的调节,与memcache或redis做缓存时候调节相同,将命中和大小控制在合理范围

2.索引

mongodb会将全部索引读入内存中,所以这里优化相当重要,

建议花精力去整理索引,如果可以做到索引恰好覆盖热数据为最佳,

四.其他注意事项

1.杜绝依靠重启来释放内存,这时释放掉的是热数据,得不偿失

2.可以禁止swap,

3.不要将mongodb与其他吃内存的服务部署到同一机器上

4.重视对mongodb内存监控,避免oom

5.重视oplog,oplog大小应定期调整,若oplog过小,对热数据部分将是灾难

6.关闭NUMA

7.安装在x64机器上(貌似是句废话)

8.根据wiredtigercache,索引,连接,来调整内存

9.有条件最好SSD

10.找一个懂mongodb的人解决具体问题,不要遇到问题就说mongodb不好

最后说一下个人对mongodb的看法,

1.从架构来讲,可切片,有副本集,mongos,保证了高可用性和可伸缩性

2.副本集可以做读写分离,

3.热数据和索引在内存,保证了高速

本人觉得mongodb是一个好东西,有不适合场景,也有适合场景,应该根据项目实际情况来使用,不能一味在不了解情况下跟风评价。

最新文章

  1. 让Web API支持Protocol Buffers
  2. ZeroMQ接口函数之 :zmq_inproc – ØMQ 本地进程内(线程间)传输方式
  3. I2C总线和S5PV210的I2C总线控制器
  4. java自定义Annotation(载自百度文库)
  5. html5 datalist自动完成
  6. nyoj 10 skiing 搜索+动归
  7. [AYUI]QQ管家源码已经开源
  8. ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页
  9. 转 C编译: 使用gdb调试
  10. JAVA中toString方法
  11. Android之声音管理器《AudioManager》的使用以及音量控制
  12. MyReport报表引擎2.6.5.0新功能
  13. ArcGIS 10.3 for Desktop新特性介绍
  14. Java解析JSON文件的方法(一)
  15. IDEA 初建Spring项目(Hello Spring)
  16. Python全栈之路----常用模块----subprocess模块
  17. 游标cursor案例
  18. Python 实现累加计数的几种方法
  19. Inno Setup 脚本
  20. CRM 2016 IFrame 函数修改 父页面字段

热门文章

  1. PHP 简单面向对象 验证码类(静态实例对象调用)
  2. 「你学习,我买单」i春秋四周年精品课程福利专场
  3. Android Studio Gradle被墙bug总结
  4. ngx-echarts 图表数据动态更新
  5. 感知哈希算法——Python实现【转】
  6. 如何解决问题:程序无法正常启动(0xc0000022)
  7. 还是畅通工程 HDU - 1233
  8. R 基于朴素贝叶斯模型实现手机垃圾短信过滤
  9. linux (09) nginx反向代理,负载均衡
  10. VirtualBox + vagrant 使用虚拟机