MongoDB数据库性能监控看这一篇就够了

让我们一起 , 一探究竟 , 继续学习MongoDB数据库性能监控 , 实现快速入门 , 丰富个人简历 , 提高面试level , 给自己增加一点谈资 , 秒变面试小达人 , BAT不是梦 。 

MongoDB数据库性能监控看这一篇就够了

文章插图
 
最近项目在使用MongoDB作为图片和文档的存储数据库 , 为啥不直接存MySQL里 , 还要搭个MongoDB集群 , 麻不麻烦?
 
让我们一起 , 一探究竟 , 继续学习MongoDB数据库性能监控 , 实现快速入门 , 丰富个人简历 , 提高面试level , 给自己增加一点谈资 , 秒变面试小达人 , BAT不是梦 。
一、MongoDB启动慢?1、启动日常卡住根本不用为了截屏而快速操作 , MongoDB启动真的超级慢 。
 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
2、启动MongoDB配置服务器 , 间歇性失败 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
3、查看MongoDB日志 , 分析“MongoDB启动慢”的原因 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
4、耗时“一小时” , MongoDB启动成功! 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
二、原因分析在MongoDB关闭之前 , 有较大的索引建立的操作没有完成 , MongoDB就直接shutdown了 , 等MongoDB再次启动的时候 , MongoDB默认会将这个index重建好 , 重建期间处于startup状态 。
由于不清楚重建索引需要多久 , 因此可以通过重启mongod时加上–noIndexBuildRetry参数来跳过索引重建 。等启动完成后 , 再创建这个索引 。
下面从几方面 , 监控一下MongoDB的性能问题 。
三、MongoDB内存使用 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
  • 常驻内存:常驻内存是MongoDB在RAM中显式拥有的内存 。如果查询一个集合数据 , MongoDB会将其放入常驻内存中 , MongoDB会获得其地址 , 这个地址不是RAM中数据的真实地址 , 而是一个虚拟地址 。MongoDB可以将它传递给内核 , 内核会查找出数据的真实位置 。如果内核需要从内存中清理缓存 , MongoDB仍然可以通过该地址对其进行访问 。MongoDB会向内核请求内存 , 然后内核会查看数据缓存 , 如果发现数据不存在 , 就会产生缺页错误并将数据复制到内存中 , 最后再返给MongoDB 。
  • 虚拟内存:操作系统提供的一种抽象 , 它对软件进程隐藏了物理存储的细节 。每个进程都可以看到一个连续的内存地址空间 。在Ops Manager中 , MongoDB的虚拟内存是映射内存的两倍 。
  • 映射内存:包含MongoDB曾经访问过的所有数据 。
四、MongoDB磁盘空间?当磁盘空间不足时 , 可以进行如下操作:
  1. 可以添加一个分片;
  2. 删除未使用的索引;
  3. 可以执行压缩操作;
  4. 关闭副本集成员 , 将其数据复制到更大的磁盘中挂载;
  5. 用较大驱动器的成员替换副本集中的成员;
五、常用命令1、MongoDB获取系统信息 
db.hostInfo()
  • 1.
 
 
MongoDB数据库性能监控看这一篇就够了

文章插图
 
2、MongoDB获取系统内存情况 
db.serverStatus().mem