mongodb导致wa增高

我的服务器是centos,安装了mongodb,但是我们服务器不定时会wa增高,导致无法对前端提供服务,top命令后,wa的值涨到20%,而cpu都还好,这方面mongo有什么好的优化吗?

隔江千里
浏览 696回答 2
2回答

呼如林

用过一段时间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节点是否正常相应请求。就酱

jeck猫

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

相关分类

MongoDB