MONGODB内存使用分析
下午在和同事讨论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
> db.<collectionname>.validate(); > // these are faster: > db.<collectionname>.dataSize(); // just data size for collection > db.<collectionname>.storageSize(); // allocation size including unused space
MONGODB内存使用分析相关推荐
- MongoDB内存映射文件
2019独角兽企业重金招聘Python工程师标准>>> Mongodb源码分析--内存文件映射(MMAP) 内存映射文件原理探索 Linux 内存映射函数 mmap()函数详解 Li ...
- 7 php 内存泄漏_PHP内存泄漏分析定位
说明:本文来自作者 邹毅 在 GitChat 上分享「 PHP 内存泄漏分析定位」 目录 场景一 程序操作数据过大 场景二 程序操作大数据时产生拷贝 场景三 配置不合理系统资源耗尽 场景四 无用的 ...
- CUDA 内存统一分析
CUDA 内存统一分析 关于CUDA 编程的基本知识,如何编写一个简单的程序,在内存中分配两个可供 GPU 访问的数字数组,然后将它们加在 GPU 上. 本文介绍内存统一,这使得分配和访问系统中任何处 ...
- Linux内存技术分析(下)
Linux内存技术分析(下) 五. 内存使用场景 out of memory 的时代过去了吗?no,内存再充足也不可任性使用. 1.内存的使用场景 · page管理 · slab(kmalloc.内存 ...
- Linux内存技术分析(上)
Linux内存技术分析(上) 一.Linux存储器 限于存储介质的存取速率和成本,现代计算机的存储结构呈现为金字塔型.越往塔顶,存取效率越高.但成本也越高,所以容量也就越小.得益于程序访问的局部性原理 ...
- android释放acitity内存,Android 内存泄漏分析与解决方法
在分析Android内存泄漏之前,先了解一下JAVA的一些知识 1. JAVA中的对象的创建 使用new指令生成对象时,堆内存将会为此开辟一份空间存放该对象 垃圾回收器回收非存活的对象,并释放对应的内 ...
- Java进程占用内存超高分析
Java进程占用内存超高分析_ 1. 报错 2. 解决 3. 我用到的解决方法 写了一个Java服务,没有定时服务,没有线程池,没有重度的读写,只是对外提供了几个接口,接口的访问量并不高,结果占用内存 ...
- 内存泄漏分析 mat 使用 activity泄漏
https://github.com/square/leakcanarysquare 公司出品mat 下载地址: http://pan.baidu.com/s/1kVPoIxx 两天,一个内存泄漏 a ...
- ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能。
信息摘要: ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能. 适用客户: 企业开发和运维人员. 版本/规格功能: 1. 支持内存快照分析,内存对象分布一览无遗,内存泄露秒级定位. ...
最新文章
- php include效率分析
- 具备这四点品质的建站系统就爱了吧!
- 博图编写温度程序_NTC测量温度的两个不同的数值转换程序,你会选择哪一个
- 6.1添加首页和登录页静态模版
- 添加vlan后无法上网_KTV多SSID绑定VLAN实用案例,值得一看的干货
- 计算机错误2 找不到指定文件,无法执行目录中的文件 错误2系统找不到指定文件怎么办?...
- Android PopupWindow 隐藏软键盘的方法
- Python之简单验证码实现
- 地理文本处理技术在高德的演进(下)
- C++函数分文件编写
- mysql8.0.15安装方法 mysql8安装教程
- roslaunch与param使用
- spring mvc 中,直接注入的 HttpServletRequst 是否安全呢?
- #Linux中的GCC编程# 20170731 C培训作业
- 微信公众号上传图文素材thumb_media_id的获得
- 6个适合成年人的自学网站,每天半小时改变你一生
- mc正版mite服务器,MITE-R192服务端客户端 配套独立可管理登陆系统
- 关于C++ 里struct 和 class的区别
- 计算机桌面备份在哪里,怎样备份系统,文件备份在哪里
- Cannot construct instance of `com.baomidou.mybatisplus.core.metadata.IPage` (no Creators, like defau