为了账号安全,请及时绑定邮箱和手机立即绑定

mongodb导致wa增高

mongodb导致wa增高

隔江千里 2018-08-17 21:46:32
我的服务器是centos,安装了mongodb,但是我们服务器不定时会wa增高,导致无法对前端提供服务,top命令后,wa的值涨到20%,而cpu都还好,这方面mongo有什么好的优化吗?
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

用过一段时间mongo,简单写下debug的过程
1.mongostat 查看下mongo当前的运行情况,主要关注下flushes、locked db的值,对当前mongo的运行情况有个大致的了解
2.在mongo shell 使用db.currentOp()查看当前的operation,查看是否有长时间执行的sql,如果有对sql进行explain,看是否有索引、是否走了索引、是否能通过索引就获得查询结果等;
3.mongo慢的情况一般都是没有建立索引、或者索引建的不恰当造成;由于mongo是在热点数据和索引都在内存中时,性能最好,如果建立太多的索引 也有可能造成查询性能降低,很低,explain发现yeild次数很多或者scan对象特别多;
4.在生产环境中,使用background:true来建立索引,防止mongo不可用;如果是master-slave的结构,建立索引的操作传递到slave实例上时,有可能不是background的方式建立索引(发生过一次,没有再次确认),所以使用master-slave来做读写分离时,需要关注下slave节点是否正常相应请求。
就酱

查看完整回答
反对 回复 2018-08-26
?
jeck猫

TA贡献1909条经验 获得超7个赞

MongoDb一般不会长时间占用IO,我猜测这种情况可能与你某个查询没有写对有关,可能是因为某种情况下触发了一条慢查询,而这条慢查询又挤占了MongoDb大部分的内存缓存的用量,导致这时候大部分查询都要走硬盘IO,才会增加wa的增大。

查看完整回答
反对 回复 2018-08-26
  • 2 回答
  • 0 关注
  • 691 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信