资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

MongoDB监控项--如何使用命令得到

1.查看服务器线程运行状态

新密网站建设公司成都创新互联,新密网站设计制作,有大型网站制作公司丰富经验。已为新密1000+提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的新密做网站的公司定做!

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.currentOp());"

当发现secs_running这个字段的值较大并且严重阻塞了系统其它线程运行的时候可以先把使用db.killOp(opid)将其kill掉,然后针对这个链接执行的query进行优化。

 

在一个正在运行的MongoDB服务器内部是有很多链接,直接执行db.currentOp()会将所有链接的信息都打印出来,这不便于找出有问题的链接,所以必须都db.currentOp()输出的信息做处理.

 

以下是一些信息处理脚本

找出运行时间超过200ms的链接信息

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(function(doc){if(doc.active==true&& doc.secs_running>200){printjson(doc)}});"

如果只需要打出这些链接的某个字段可以直接用print

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(function(doc){if(doc.active==true&& doc.secs_running>200){printjson(doc.opid)}});"

 

打印客户端信息

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(

function(opDoc){

if(opDoc.client)

printjson(opDoc.client)

}

);"

 

还可以获取当前操作中,已停止活动并且操作行为为query的信息

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(

function(opDoc){//opDoc其实是返回的每个op操作对象

if(!opDoc.active&&opDoc.op=='query')

printjson(opDoc)

}

);"

 

还可以获取当前操作中,正在进行中并且操作行为为query的信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(

function(opDoc){//opDoc其实是返回的每个op操作对象

if(opDoc.active&&opDoc.op=='query')

printjson(opDoc)

}

);"

 

 

查看数据库payDB的信息:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.currentOp());"

 

查看连接数

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().connections);"

 

把所有在等待锁的操作显示出来:

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp().inprog.forEach(function(item){if(item.waitingForLock)print(JSON.stringify(item))});"

 

 

锁信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().locks);"

全局锁信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().globalLock

);"

 

内存信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().mem

);"

 

索引统计

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().indexCounters);"

 

网络

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().network);"

 

复制集

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().repl

);"

复制集判断哪个IP是primary

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().repl

);" | grep primary

 

操作计数器

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().opcounters

);"

 

Journal(dur)持久性

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().dur

);"

 

 

查看oplog信息:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin local -eval "rs.slaveOk();printjson(db.oplog.rs.stats()

);"

 

这个IP不用修改这是primary

查看master 的oplog元数据信息:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin admin -eval"rs.slaveOk();printjson(db.printReplicationInfo()

);"

 

修改成任意IP

查看slave的同步状态-延迟:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin local -eval"rs.slaveOk();printjson( db.printSlaveReplicationInfo()

);"

 

命令用于追踪数据库实例的实时运行状况

mongostat --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin


文章题目:MongoDB监控项--如何使用命令得到
转载来源:http://www.cdkjz.cn/article/jdhgej.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220