下午在和同事讨论mongodb在内存吃紧后,性能急剧下降的问题.同事问什么时候什么情况下mongodb性能会下降?有什么方法可以优化内存的使用?

首先我们要了解mongodb是怎么样使用内存.mongodb内存吃的快是因为mongodb对数据文件进行了file mapping,其它的部分如:index什么的并不占多少内存.当file mapping 用的内存越来越的时候,那么pages faults/sec 就会越来越高,于是性能会下降.

对于第一个问题:

  1. 监控系统的faults, 可以mongostat进行查看(Linux only).当faults很高的时候,mongodb性能就会下降.此时就可以考虑进行碎片整理,或者sharding了.
  2. db data file大了并不意味着faults一定会高.因为要看db中冷热数据的比例.

对于第二个问题:

  1. 进行碎片整理.因为mongodb在update一个document的时候,如果update后的document比原来的大,那么这个document会放尾巴上去.这也是有时候用mogodump一个运行中的系统会出现数据不一致性的情况的原因.只是mongodb不支持在线整理.而且它提供的db.repairDatabase()速度也比较慢.  所以想进行compact的话,可以考虑将primary关掉,然后删除所有数据文件,然后再上线.
    可以运行以下命令查看是否需要进行compact
    > db.<collectionname>.validate(); > // these are faster: > db.<collectionname>.dataSize(); // just data size for collection > db.<collectionname>.storageSize(); // allocation size including unused space

MONGODB内存使用分析相关推荐

  1. MongoDB内存映射文件

    2019独角兽企业重金招聘Python工程师标准>>> Mongodb源码分析--内存文件映射(MMAP) 内存映射文件原理探索 Linux 内存映射函数 mmap()函数详解 Li ...

  2. 7 php 内存泄漏_PHP内存泄漏分析定位

    说明:本文来自作者  邹毅 在 GitChat 上分享「  PHP 内存泄漏分析定位」 目录 场景一 程序操作数据过大 场景二 程序操作大数据时产生拷贝 场景三 配置不合理系统资源耗尽 场景四 无用的 ...

  3. CUDA 内存统一分析

    CUDA 内存统一分析 关于CUDA 编程的基本知识,如何编写一个简单的程序,在内存中分配两个可供 GPU 访问的数字数组,然后将它们加在 GPU 上. 本文介绍内存统一,这使得分配和访问系统中任何处 ...

  4. Linux内存技术分析(下)

    Linux内存技术分析(下) 五. 内存使用场景 out of memory 的时代过去了吗?no,内存再充足也不可任性使用. 1.内存的使用场景 · page管理 · slab(kmalloc.内存 ...

  5. Linux内存技术分析(上)

    Linux内存技术分析(上) 一.Linux存储器 限于存储介质的存取速率和成本,现代计算机的存储结构呈现为金字塔型.越往塔顶,存取效率越高.但成本也越高,所以容量也就越小.得益于程序访问的局部性原理 ...

  6. android释放acitity内存,Android 内存泄漏分析与解决方法

    在分析Android内存泄漏之前,先了解一下JAVA的一些知识 1. JAVA中的对象的创建 使用new指令生成对象时,堆内存将会为此开辟一份空间存放该对象 垃圾回收器回收非存活的对象,并释放对应的内 ...

  7. Java进程占用内存超高分析

    Java进程占用内存超高分析_ 1. 报错 2. 解决 3. 我用到的解决方法 写了一个Java服务,没有定时服务,没有线程池,没有重度的读写,只是对外提供了几个接口,接口的访问量并不高,结果占用内存 ...

  8. 内存泄漏分析 mat 使用 activity泄漏

    https://github.com/square/leakcanarysquare 公司出品mat 下载地址: http://pan.baidu.com/s/1kVPoIxx 两天,一个内存泄漏 a ...

  9. ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能。

    信息摘要: ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能. 适用客户: 企业开发和运维人员. 版本/规格功能: 1. 支持内存快照分析,内存对象分布一览无遗,内存泄露秒级定位. ...

最新文章

  1. php include效率分析
  2. 具备这四点品质的建站系统就爱了吧!
  3. 博图编写温度程序_NTC测量温度的两个不同的数值转换程序,你会选择哪一个
  4. 6.1添加首页和登录页静态模版
  5. 添加vlan后无法上网_KTV多SSID绑定VLAN实用案例,值得一看的干货
  6. 计算机错误2 找不到指定文件,无法执行目录中的文件 错误2系统找不到指定文件怎么办?...
  7. Android PopupWindow 隐藏软键盘的方法
  8. Python之简单验证码实现
  9. 地理文本处理技术在高德的演进(下)
  10. C++函数分文件编写
  11. mysql8.0.15安装方法 mysql8安装教程
  12. roslaunch与param使用
  13. spring mvc 中,直接注入的 HttpServletRequst 是否安全呢?
  14. #Linux中的GCC编程# 20170731 C培训作业
  15. 微信公众号上传图文素材thumb_media_id的获得
  16. 6个适合成年人的自学网站,每天半小时改变你一生
  17. mc正版mite服务器,MITE-R192服务端客户端 配套独立可管理登陆系统
  18. 关于C++ 里struct 和 class的区别
  19. 计算机桌面备份在哪里,怎样备份系统,文件备份在哪里
  20. Cannot construct instance of `com.baomidou.mybatisplus.core.metadata.IPage` (no Creators, like defau

热门文章

  1. fastadmin 导出
  2. 英语四级口语考试应该怎么准备
  3. 两种CAN微控制器MCP2510与SJA1000的比较
  4. 计算机无法连接到扫描仪请确认,扫描仪提示连接失败如何检查与处理?
  5. IP路由协议(RIP、IGRP、OSPF、IS-IS、BGP)
  6. 移动web网页开发——项目:生活资讯网(响应式开发)
  7. 转型阵痛期,好未来减亏容易增收难?
  8. ssh断开连接后如何保持远程 SSH 会话运行
  9. 转载颜色模式RGB888-RGB565
  10. 图形世界分裂的两派——理清D3D和OpenGL的脉络