mongo數據庫工具

mongo數據庫工具

mongo提供的方法

mongostat實時檢測mongod的當前運行狀態

  • 命令: mongostat -h 127.0.0.1:27017 -u liebao -p liebao
  • dirty髒數據 used使用率
  • flushes異步寫入的次數
  • vsize虛擬內存使用 res物理內存使用
  • qrw等待讀寫隊列 arw激活讀寫操作數量
  • net_in數據庫收到的網絡請求 net_out數據庫發送的網絡請求 conn打開的連接數 time 時間

mongotop 提供實時跟蹤每個集合的統計數據

  • 命令:mongotop -h 127.0.0.1:27017 -u liebao -p liebao
  • ns數據庫集合的命名空間
  • total在這個命令空間所以操作花費總時間、
  • read在這個命令空間上mongod執行讀操作花費的時間
  • write在這個命令空間上mongod執行讀操作花費的時間
  • 當前時間

指令方法

profile設置步驟

  • (1)db.setProfilingLevel(n) 0:默認關閉 1:設置間隔時間 2:設置全部,在全部的情況下,systemprofile會比較大有一定的性能消 耗,所以需要設置慢請求:只顯示>1000ms的操作,即:db.setProfilingLevel(1,1000)
  • (2)在system.profile庫查找,比如說最近3條:db.system.profile.find().sort({“ts”:-1}).limit(3)
  • (3)查看keysExamined:所掃描的索引鍵記錄數、docsExamined、nreturned:返回的文檔數、responseLength:返回結果集的大小

檢測數據庫和字段大小

  • 檢測數據庫的大小、某文檔的所有字段大小:python cal_db_size.py 方法和下面這個類似len(bson.BSON.encode(db.col.findOne({id:xxxx})))
  • 或者直接mongo客戶端輸入:Object.bsonsize(db.col.findOne({_id: x1}))

db.stats()獲取當前數據庫的信息

  • db名字
  • collections文檔數量
  • indexSize索引大小
  • indexNum索引數量
  • dataSize數據大小
  • storageSize佔用磁盤大小。

db.serverStatus() 針對全庫級別的命令

  • host:名字、version:版本、pid:進程id、mem:內存信息、locks:鎖信息、storage磁盤信息
  • totalIndexSize:索引總大小
  • opcounters:操作計數器(insert query update delete getmore command索引操作總數)
  • conntections:連接數(當前數、可連接數、創建數)
  • network網絡具體:“bytesIn”: 3745554, “bytesOut”: 6255104等
  • wireTiger:存儲引擎具體信息包括cache、conntection、cursor、log、lock、session等
  • metircs裏面包括commands 顯示了每條命令的使用總次數和失敗次數
  • document文檔數:(insert數 update數 delete數 return數)
  • indexCounters索引計數器:訪問次數 miss次數 命中次數 重置次數 miss率

db.col.stats() 針對當前col集合的狀態命令

  • ns:集合的命名空間、size:大小、
  • count:文檔數量、avgObjSize:平均每個文檔的大小、totalIndexSize:索引總大小
  • wireTiger:存儲引擎具體信息包括cache、conntection、cursor、btree、session等
    (wiredTiger[“block-manager”][“file bytes available for reuse”] 能隔預估compact能回收多少空間)
  • nindexes:幾個索引
  • indexSizes: {…} 索引具體內容
  • 如果只看某個文檔的某個參數可以用:db.col.dataSize()數據大小 totalSize()總大小 totalIndexSize()索引總大小 storageSize()存盤大小

查看當前執行操作

  • 如果當前數據庫被某指令(如查找)卡住了,需要運行db.currentOp():查看數據庫當前執行什麼操作,用於查看長時間運行進程。

kill操作

  • 如果當前操作太長需要丟棄的話,則db.killOp(id)殺掉
發佈了94 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章