標籤:無法 說明 bsp 狀態 刪除 fsync 結合 包含資料庫 0.12
1、mongotop
#mongotop -h 127.0.0.1:27017 -u test -p test123 --authenticationDatabase admin
輸出說明:
- ns:包含資料庫命名空間,後者結合了資料庫名稱和集合。
- db:包含資料庫的名稱。名為 . 的資料庫針對全域鎖定,而非特定資料庫。
- total:mongod花費的時間工作在這個命名空間提供總額。
- read:提供了大量的時間,這mongod花費在執行讀操作,在此命名空間。
- write:提供這個命名空間進行寫操作,這mongod花了大量的時間。
2、mongostat
#mongostat -h 127.0.0.1:27017 -u test -p test123 --authenticationDatabase admin
- inserts/s 每秒插入次數
- query/s 每秒查詢次數
- update/s 每秒更新次數
- delete/s 每秒刪除次數
- getmore/s 每秒執行getmore次數
- command/s 每秒的命令數,比以上插入、尋找、更新、刪除的綜合還多,還統計了別的命令
- flushs/s 每秒執行fsync將資料寫入硬碟的次數。
- mapped/s 所有的被mmap的資料量,單位是MB,
- vsize 虛擬記憶體使用量,單位MB
- res 實體記憶體使用量,單位MB
- faults/s 每秒訪問失敗數(只有Linux有),資料被交換出實體記憶體,放到swap。不要超過100,否則就是機器記憶體太小,造成頻繁swap寫入。此時要升級記憶體或者擴充
- locked % 被鎖的時間百分比,盡量控制在50%以下吧
- idx miss % 索引不命中所佔百分比。如果太高的話就要考慮索引是不是少了
q t|r|w
當Mongodb接收到太多的命令而資料庫被鎖住無法執行完成,它會將命令排入佇列。這一欄顯示了總共、讀、寫3個隊列的長度,都為0的話表示mongo毫無壓力。高並發時,一般隊列值會升高。
- conn 當前串連數
- time 時間戳記
3、查看當前的option
Mongodb 的命令一般很快就完成,但是在一台繁忙的機器或者有比較慢的命令時,你可以通過db.currentOp()擷取當前正在執行的操作,在沒有負載的機器上,該命令基本上都是返回空的
>db.currentOp()
{ "opid" : "shard3:466404288", "active" : false, "waitingForLock" : false, "op" : "query", "ns" : "sd.usersEmails", "query" : { }, "client_s" : "10.121.13.8:34473", "desc" : "conn" },
如果發現一個操作太長,把資料庫卡死的話,可以用以下命令殺死他:
>db.killOp("shard3:466404288")
查看mongodb的狀態