在工作中發現生產環境的mongodb機器的連接數很高(通過netstat查看),所以想看看是什么原因導致的連接數高,以及有沒有瓶頸問題。
1.查看mongodb里記錄的連接數:
db.serverStatus().connections;
2.查看每個連接具體信息:
db.currentOp()
db.currentOp(true).inprog db.currentOp(true).inprog db.currentOp(true).inprog.forEach( function(opDoc){//opDoc其實是返回的每個op操作對象 printjson(opDoc)//打印信息 } )
3.但是因為我遇到的連接數太多,一屏幕的xshell寫不下,直接運行並不能展示完整的信息,所以通過把以上的查詢語句寫成findop.js,然后命令行執行,存成文件的方法得到:
mongo your_host:your_port -u admin -p 'your_password' --authenticationDatabase "your_db" findop.js > resultop.txt
4.還可以通過查看日志可以知道是哪個在頻繁連接,在操作什么
mongos日志可查看哪個在頻繁連接
mongod日志可查看操作語句