日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB监控项--如何使用命令得到 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.查看服務器線程運行狀態

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.currentOp());"

當發現secs_running這個字段的值較大并且嚴重阻塞了系統其它線程運行的時候可以先把使用db.killOp(opid)將其kill掉,然后針對這個鏈接執行的query進行優化。

?

在一個正在運行的mongodb服務器內部是有很多鏈接,直接執行db.currentOp()會將所有鏈接的信息都打印出來,這不便于找出有問題的鏈接,所以必須都db.currentOp()輸出的信息做處理.

?

以下是一些信息處理腳本

找出運行時間超過200ms的鏈接信息

mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --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=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --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=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(

function(opDoc){

if(opDoc.client)

printjson(opDoc.client)

}

);"

?

還可以獲取當前操作中,已停止活動并且操作行為為query的信息

mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --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=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --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=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.currentOp());"

?

查看連接數

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().connections);"

?

把所有在等待鎖的操作顯示出來:

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

?

?

鎖信息

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().locks);"

全局鎖信息

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().globalLock

);"

?

內存信息

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().mem

);"

?

索引統計

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().indexCounters);"

?

網絡

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().network);"

?

復制集

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().repl

);"

復制集判斷哪個IP是primary

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().repl

);" | grep primary

?

操作計數器

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().opcounters

);"

?

Journal(dur)持久性

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().dur

);"

?

?

查看oplog信息:

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin local -eval "rs.slaveOk();printjson(db.oplog.rs.stats()

);"

?

這個IP不用修改這是primary

查看master 的oplog元數據信息:

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin admin -eval"rs.slaveOk();printjson(db.printReplicationInfo()

);"

?

修改成任意IP

查看slave的同步狀態-延遲:

$ mongo --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin local -eval"rs.slaveOk();printjson( db.printSlaveReplicationInfo()

);"

?

命令用于追蹤數據庫實例的實時運行狀況

mongostat --host=<IP Addr> ?--port=<PORT> -u mongo_monitor -p"<PASSWORD>" --authenticationDatabase admin


轉載于:https://blog.51cto.com/beigai/1748013

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的MongoDB监控项--如何使用命令得到的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。