个人经验~mongo故障处理思路
一 简介:mongodb 应该如何排查
二 分析角度
linux 角度
1 硬件是否有问题 常见主板 raid卡 和raid磁盘组
2 综合指标 负载
uptime : 1min 5min 15min
平均负载的值,取决于系统上处于R状态(running加runnable)和D状态(不可中断睡眠,也就是等待io完成的进程)的个数之和在指定时间段内的平均值。
分析角度 :负载分为两部分
1 cpu密集型业务处理,表现形式top 下的cpu使用率 (单进程cpu使用率为使用逻辑核心数X100%)
2 cpu io 等待,表现形式为top下的iowait较高或者iostat查看磁盘组的util值使用率经常100%
综合指标 内存
mongodb VIRT RES
mongodb占用内存的方式和mysql不同,会几乎把所有内存进行cache缓存
分析角度: 内存相关问题
1 内存使用过度,直到占用swap内存,发生oom-killer,选择大容量内存(我碰到过的只有这个)
综合指标 网卡流量
网卡流量 一般为千兆网卡,流量报警
分析角度:
1 新增节点,进行全量同步,或者进行mongdump.当数据量大时会发生报警
2 当并发太高,也可能导致发生报警
三 mongo角度
1 事务语句
1 短时间内的并发事务操作暴增(insert,update,delete语句)
2 多库之间的事务操作互相影响
3 大量db级别的锁等待情况
2 查询语句
1 短时间内的并发查询事务
2 慢语句
3 其他场景
四 处理思路
1 linux 监控收集
负载 cpu 内存 流量 图进行收集
2 mongo 监控收集
connections DML语句波动
3 实时查看
1 通过监控和mongostat 收集哪种语句波动较大,定位删/改/插入 类型语句
2 通过mongotop 收集哪个db读写耗时更高,定位具体业务
3 通过观察shard.log观察慢语句,定位慢sql本身
4 通过mongostat的faults次数定位是否内存本身存在瓶颈
五 优化
硬件
1 选用高内存dell机器
mongo
1 优化慢语句(80%场景是慢查询导致的问题)
2 优化业务逻辑,减少mongo DML的次数
3 优化业务逻辑,做读写分离策略
4 优化业务逻辑,增加前端redis缓存
5 冷热数据分离,减少大表数据量
6 numtal=all方式启动mongo.不然有可能导致cpu暴涨的问题, 禁用zone_reclaim_mod 参数,在sysctl.conf中设置vm.zone_reclaim_mod=0即可 vm.zone_reclaim_mod=0 意味着可以从其他zone或NUMA节点回收内存
7 多个业务集中在集群,采取拆分,减少并发
六 总结
mongo场景发生的故障大部分表现在cpu和内存两方面,大量的操作语句极有可能造成cpu的暴涨
个人经验~mongo故障处理思路的更多相关文章
- 个人经验~mysql故障处理思路
一 简介:个人经验总结 二 思路: 从整体上再进行梳理 三 linux角度 1 硬件是否有问题 常见主板 raid卡 和raid磁盘组 2 综合指标 负载 uptime : 1min 5min ...
- Redis实战 | 持久化、主从复制特性和故障处理思路
前言 前面两篇我们了解了Redis的安装.Redis最常用的5种数据类型.本篇总结下Redis的持久化.主从复制特性,以及Redis服务挂了之后的一些处理思路. 前期回顾传送门: Linux下安装Re ...
- latch: cache buffers chains故障处理总结(转载)
一大早就接到开发商的电话,说数据库的CPU使用率为100%,应用相应迟缓.急匆匆的赶到现场发现进行了基本的检查后发现是latch: cache buffers chains 作祟,处理过程还算顺利,当 ...
- latch: cache buffers chains故障处理总结
一大早就接到开发商的电话,说数据库的CPU使用率为100%,应用相应迟缓.急匆匆的赶到现场发现进行了基本的检查后发现是latch: cache buffers chains 作祟,处理过程还算顺利,当 ...
- Linux运维故障排查思路
linux系统故障 网络问题 linux系统无响应 linux系统无法启动 linux系统故障处理思路 1.重视报错信息,一般情况下此提示基本定位了问题的所在 2.查阅日志文件,系统日志和应用日志 3 ...
- linux操作系统故障处理-ext4文件系统超级块损坏修复
linux操作系统故障处理-ext4文件系统超级块损坏修复 背景 前天外面出差大数据测试环境平台有7台服务器挂了,同事重启好了五台服务器,但是还有两台服务器启动不起来,第二天回来后我和同事再次去机 ...
- 华为云计算IE面试笔记-桌面云用户登录连接流程及故障处理?
1-10:桌面与系统验证成功 http协议 11-19:桌面list(VM列表)获取,选择 http协议 20-30: ...
- MongoDB 分页查询的方法及性能
最近有点忙,本来有好多东西可以总结,Redis系列其实还应该有四.五.六...不过<Redis in Action>还没读完,等读完再来总结,不然太水,对不起读者. 自从上次Redis之后 ...
- 大公司的PHP面试题
1. 禁用COOKIE 后 SEESION 还能用吗? 2. 抓取远程图片到本地,你会用什么函数? 4. 你觉得在pV10W的时候, 同等配置下,LUNIX 比WIN快多少? 5. 简述pOST 和G ...
随机推荐
- angularjs的一些问题
1.如果页面报不支持写法的错,请查看是否引用了跨js定义的常量.逐步排错. 2.后台返回json要导入如下依赖: <dependency> <groupId>net.sf.js ...
- callee和斐波那契数列
如果一对兔子每月生一对兔子:一对新生兔,从第二个月起就开始生兔子:假定每对兔子都是一雌一雄,试问一对兔子,第n个月能繁殖成多少对兔子? ———————————————————————————————— ...
- windows server 2012 流媒体服务器搭建(直播与点播)
IIS Live Smooth Streaming(实时平滑流式处理)是微软下一代流媒体解决方案.该技术是在IIS web中集成媒体传输平台IIS media services,实现利用标准 HTTP ...
- hdu2544 最短路 Dijkstra算法
最短路(Dijkstra算法模板题) Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 使用WinPcap(SharpPcap)实现ARP抓包以实现设备IP修改功能
参考上一篇: 使用WinPcap(SharpPcap)实现ARP抓包以实现设备IP搜索功能 搜索出设备后,需要修改设备IP网关掩码等信息 继续采用ARP包 getBas类似之前的,根据用户电脑的网卡物 ...
- CentOS 6.x 最小化安装推荐安装的依赖包和修改内核参数
CentOS 6.x 最小化安装推荐安装的依赖包 我在日常工作中,新建的xenserver的虚拟机,CentOS release 6.9 (Final)操作系统,采用最小化安装,后续很多操作需要各种依 ...
- u-boot(一)启动简介
目录 u-boot(一)启动简介 启动概述 内部存储布局 Bootloader概述 内核启动参数 taggedlist 体验一下实际的Uboot U-boot的使用帮助 U-boot基本要求 titl ...
- java 中+的运算规则
1.Java中的加法的运算优先级是从左往右的 2.字符串""隔壁跟的+号意思是字符串的连接 就不是加法了 3.'字符' 后面的+号意思是'字符'的ascall码值和后面的值相加 c ...
- java基本类型及其相互转换
1.基本数据类型 java中是采用Unicode编码的,其一个字符占用两个字节,故java中字符char可以存储一个中文汉字 整数默认是int类型,浮点数默认是double类型 在定义long类型的变 ...
- 虚拟机部署hadoop集群准备工作之多虚拟机设置网络信息
安装好了centos6.4(最简版)后 1,静态IP设置 查看虚拟机的网络设置信息来配置