189 8069 5689

MongoDB监控项--如何使用命令得到-创新互联

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

创新互联主营山阳网站建设的网络公司,主营网站建设方案,app软件开发公司,山阳h5微信小程序开发搭建,山阳网站营销推广欢迎山阳等地区企业咨询

$ 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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:MongoDB监控项--如何使用命令得到-创新互联
本文网址:http://jkwzsj.com/article/coppji.html

其他资讯