[MongoDB]db.serverStatus()命令詳解

來源:互聯網
上載者:User
基本資料

spock:PRIMARY>db.serverStatus()

{

"host" :"h6.corp.yongche.org", //主機名稱

"version" :"2.6.2", //mongodb版本

"process" :"mongod", //mongodb進程,主要有mongod和mongos(分區叢集中)兩種

"pid" : NumberLong(4205), //mongod的pid進程號,可用shell的pidof mongod命令驗證

"uptime" : 173120, //mongod服務啟動後到現在已經存活的秒數

"uptimeMillis" :NumberLong(173119573), / /mongod服務啟動後到現在已經存活的毫秒數

"uptimeEstimate" : 172173, //mongod內部計算出來的存活秒數

"localTime" :ISODate("2014-12-31T06:41:01.029Z") //本地時間

 

  鎖資訊

Mongodb有4種鎖:r,R,w,W

R:表示全域讀鎖

W:全域寫鎖

r:某個資料庫讀鎖

w:某個資料庫寫鎖

 

spock:PRIMARY>db.serverStatus().locks

{

"." : {

"timeLockedMicros": {

"R" :NumberLong(2532219), //mongod啟動後所有庫持有全域讀鎖的總微秒數

"W" :NumberLong(2022505) // mongod啟動後所有庫持有全域寫鎖的總微秒數

},

"timeAcquiringMicros": {

"R" :NumberLong(1489378), // mongod啟動後所有庫全域讀鎖的鎖等待的總微秒數

"W" :NumberLong(361350) // mongod啟動後所有庫全域寫鎖的鎖等待的總微秒數

}

},

"admin" : {

"timeLockedMicros": {

"r" :NumberLong(277350), // mongod啟動後admin資料庫持有的讀鎖時間

"w" :NumberLong(0) // mongod啟動後admin資料庫持有的寫鎖時間

},

"timeAcquiringMicros": {

"r" :NumberLong(11011), // mongod啟動後admin資料庫的讀鎖的鎖等待總時間

"w" :NumberLong(0) // mongod啟動後admin資料庫的讀鎖的鎖等待總時間

}

},

"local" : {

"timeLockedMicros": {

"r" :NumberLong(29750564),

"w" :NumberLong(737)

},

"timeAcquiringMicros": {

"r" :NumberLong(4074456),

"w" :NumberLong(46)

}

},

"jiangjianjian" : {

"timeLockedMicros": {

"r" :NumberLong(935802), //mongod啟動後jiangjianjian資料庫持有的讀鎖時間

"w" :NumberLong(98) // mongod啟動後jiangjianjian資料庫持有的寫鎖時間

},

"timeAcquiringMicros": {

"r" :NumberLong(262185), // mongod啟動後jiangjianjian資料庫的讀鎖的鎖等待總時間

"w" : NumberLong(9) // mongod啟動後jiangjianjian資料庫的寫鎖的鎖等待總時間

}

},

"test" : {

"timeLockedMicros": {

"r" :NumberLong(719696),

"w" :NumberLong(141)

},

"timeAcquiringMicros": {

"r" :NumberLong(332797),

"w" :NumberLong(10)

}

}

}

  全域鎖資訊

spock:PRIMARY>db.serverStatus().globalLock

{

"totalTime" :NumberLong("172059990000"), //mongod啟動後到現在的總時間,單位微秒

"lockTime" :NumberLong(2031058), //mongod啟動後全域鎖鎖住的總時間,單位微秒

"currentQueue" : {

"total" : 0, //當前的全域鎖等待鎖等待的個數

"readers" : 0, //當前的全域讀鎖等待個數

"writers" : 0 //當前全域寫鎖等待個數

},

"activeClients" : {

"total" : 0, //當前活躍用戶端的個數

"readers" : 0, //當前活躍用戶端中進行讀操作的個數

"writers" : 0 //當前活躍用戶端中進行寫操作的個數

}

}

  記憶體資訊

bj1-farm1:PRIMARY>db.serverStatus().mem

{

"bits" : 64, //作業系統位元

"resident" : 45792, //實體記憶體消耗,單位M

"virtual" : 326338, //虛擬記憶體消耗

"supported" : true, //為true表示支援顯示額外的記憶體資訊

"mapped" : 161399, //映射記憶體

"mappedWithJournal" : 322798 //除了映射記憶體外還包括journal日誌消耗的映射記憶體

}

關於mongodb記憶體的介紹可參考我的blog

http://blog.csdn.net/cug_jiang126com/article/details/42264895

  串連數資訊

bj1-farm1:PRIMARY>db.serverStatus().connections

{

"current" : 2581, //當前串連數

"available" : 48619, //可用串連數

"totalCreated" :NumberLong(187993238) //截止目前為止總共建立的串連數

}

可看到當前mongod的最大串連數即為51200=2581+48619

  額外資訊

bj1-farm1:PRIMARY>db.serverStatus().extra_info

{

"note" : "fields vary byplatform", //表示當前這個extra_info的顯示資訊依賴於底層系統

"heap_usage_bytes" :206033064, //堆記憶體空間佔用的位元組數,僅linux適用

"page_faults" : 11718117 //資料庫訪問資料時探索資料不在記憶體時的頁面數量,當資料庫效能很差或者資料量極大時,這個值會顯著上升

}

  索引統計資訊

bj1-farm1:PRIMARY>db.serverStatus().indexCounters

{

"accesses" : 35369670951, //索引訪問次數,值越大表示你的索引總體而言建得越好,如果值增長很慢,表示系統建的索引有問題

"hits" : 35369213426, //索引叫用次數,值越大表示mogond越好地利用了索引

"misses" : 0, //表示mongod試圖使用索引時發現其不在記憶體的次數,越小越好

"resets" : 0, //計數器重設的次數

"missRatio" : 0 //丟失率,即misses除以hits的值

}

 

  後台重新整理資訊

bj1-farm1:PRIMARY>db.serverStatus().backgroundFlushing

{

"flushes" : 171675, //資料庫重新整理寫操作到磁碟的總次數,會逐漸增長

"total_ms" : 432943335, //mongod寫資料到磁碟消耗的總時間,單位ms,

"average_ms" :2521.8775884665793, //上述兩值的比例,表示每次寫磁碟的平均時間

"last_ms" : 5329, //當前最後一次寫磁碟花去的時間,ms,結合上個平均值可觀察到mongd總體寫效能和當前寫效能

"last_finished" :ISODate("2014-12-31T07:39:11.881Z") //最後一次寫完成的時間

}

  遊標資訊

bj1-farm1:PRIMARY>db.serverStatus().cursors

{

"note" : "deprecated,use server status metrics", //表示也可使用b.serverStatus().metrics.cursor命令看看

"clientCursors_size" : 2, //mongodb當前為用戶端維護的遊標個數

"totalOpen" : 2, //和clientCursors_size一樣

"pinned" : 0, //開啟的pinned類型的遊標個數

"totalNoTimeout" : 0, //設定了經過一段不活躍時間以後不設定逾時,即參數“ DBQuery.Option.noTimeout”值以後,開啟的遊標個數

"timedOut" : 11 //從mongod啟動以來的遊標逾時個數,如果這個值很大或者一直在增長,可能顯示當前應用程式有錯誤

}

  網路資訊

bj1-farm1:PRIMARY>db.serverStatus().network

{

"bytesIn" :NumberLong("1391919214603"), //資料庫接收到的網路傳輸位元組數,可通過該值觀察是否到了預計的期望值

"bytesOut" :NumberLong("1669479449423"), //從資料庫發送出去的網路傳輸位元組數

"numRequests" : 5186060375 //mongod接收到的總的請求次數

}

  複本集資訊

bj1-farm1:PRIMARY>db.serverStatus().repl

{

"setName" :"bj1-farm1", //複本集名稱

"setVersion" : 4, //目前的版本,每修改一次配置會自增1

"ismaster" : true, //當前節點是否為master

"secondary" : false, //當前節點是否為slave

"hosts" : [ //複本集組成

"172.16.0.150:27017",

"172.16.0.152:27017",

"172.16.0.151:27017"

],

"primary" : "172.16.0.150:27017", //master所在的ip地址

"me" :"172.16.0.150:27017" //當前節點的ip地址

}

關於更多的複本集管理和介紹詳見我的blog

http://blog.csdn.net/cug_jiang126com/article/details/41943237

  複本集的操作計數器

bj1-farm1:PRIMARY>db.serverStatus().opcountersRepl

{

"insert" : 599, // mongod replication最近一次啟動後的insert次數

"query" : 0,

"update" : 0,

"delete" : 0,

"getmore" : 0,

"command" : 0

}

 

  操作計數器

bj1-farm1:PRIMARY>db.serverStatus().opcounters

{

"insert" : 17476744, //mongod最近一次啟動後的insert次數

"query" : 4923585, // mongod最近一次啟動後的query次數

"update" : 445136, // mongod最近一次啟動後的update次數

"delete" : 301953, // mongod最近一次啟動後的delete次數

"getmore" : 28737548, // mongod最近一次啟動後的getmore次數,這個值可能會很高,因為子節點會發送getmore命令,作為資料複製操作的一部分

"command" : 32844821 //// mongod最近一次啟動後的執行command命令的次數

}

  Asserts

bj1-farm1:PRIMARY>db.serverStatus().asserts

{

"regular" : 65, //服務啟動後正常的asserts錯誤個數,可通過log查看更多該資訊

"warning" : 1, //服務啟動後的warning個數

"msg" : 0, //服務啟動後的message assert個數

"user" : 30655213, //服務啟動後的user asserts個數

"rollovers" : 0 //服務啟動後的重設次數

} writeBacksQueued

bj1-farm1:PRIMARY>db.serverStatus().writeBacksQueued

false //如果為true表示有需要被重新執行的操作,如果為false表示沒有

  持久化(dur)

bj1-farm1:PRIMARY>db.serverStatus().dur

{

"commits" : 29, //上次分組提交間隔之後,寫入journal的commit的次數

"journaledMB" : 1.089536, //上次分組提交間隔之後,寫入journal的大小,單位M

"writeToDataFilesMB" :2.035345, //上次分組提交間隔之後,從journal寫入到資料檔案的大小

"compression" : 0.49237888647866956,//journal日誌的壓縮率

"commitsInWriteLock" : 0, //提交的時候有寫鎖的次數,可以用該值判斷當前系統的寫壓力

"earlyCommits" : 0, //在分組提交間隔前,請求commit的次數。用這個值可以判斷分組提交間隔,即 journal group commitinterval設定得是否合理

"timeMs" : {

"dt" : 3060, //收集資料所花的時間,單位ms

"prepLogBuffer" :7, //準備寫入journal所花的時間,單位ms,該值越小表示journal效能越好

"writeToJournal" :36, //真正寫入journal所花的時間,單位ms,該值和檔案系統和硬體裝置有關

"writeToDataFiles": 34, //從journal寫入到資料檔案所花的時間,單位ms

"remapPrivateView": 18 //重新對應記憶體所花的時間,單位ms,值越小表示journal效能越好

}

}

如果設定了分組提交間隔時間,該項還會在後面顯示journalCommitIntervalMs資訊,即提交間隔,預設100ms。

  選項組資訊

bj1-farm1:PRIMARY>db.serverStatus().recordStats

{

"accessesNotInMemory" :4444249, //訪問資料時發現不在記憶體的總次數

"pageFaultExceptionsThrown" :22198, //由於分頁錯誤而拋出異常的總次數

"yc_driver" : {

"accessesNotInMemory": 53441,

"pageFaultExceptionsThrown": 18067

},

"yc_foot_print" : {

"accessesNotInMemory": 0,

"pageFaultExceptionsThrown": 0

}

  工作集配置

bj1-farm1:PRIMARY>db.serverStatus( { workingSet: 1 } ).workingSet

{

"note" :"thisIsAnEstimate", //注釋

"pagesInMemory" : 736105, //overseconds時間內在記憶體中的頁的數量,預設頁大小4k;如果你的資料集比記憶體還小,那麼該值換算成大小就是資料集的大小;可以用該 值評估實際工作集的大小

"computationTimeMicros" : 232590, //收集working set資料所花的時間,單位微秒,收集這些資訊會影響伺服器效能,請注意收集working set的頻率

"overSeconds" : 502 //記憶體中從最新資料變到最舊的資料頁之間的所花的時間,單位秒。如果該值正在減少,或者值很小,表示working set已經遠大於記憶體值;如 果該值很大,表示data set <=記憶體值

}

  metrics

bj1-farm1:PRIMARY>db.serverStatus().metrics

{

"cursor" : { //遊標的資訊在上面已經介紹過

"timedOut" :NumberLong(12),

"open" : {

"noTimeout": NumberLong(0),

"pinned" :NumberLong(0),

"total" : NumberLong(2)

}

},

"document" : {

"deleted" :NumberLong(4944851), //刪除記錄的總條數

"inserted" :NumberLong(1066509660), //插入記錄的總條數

"returned" :NumberLong("4594388182"), //返回記錄的總條數

"updated" :NumberLong(27275088) //更新記錄的總條數

},

"getLastError" : {

"wtime" : {

"num" : 0, //w>1的getlasterror次數

"totalMillis": 0 //時間

},

"wtimeouts" :NumberLong(0) //逾時個數

},

這部分詳細參考官方文檔

http://docs.mongodb.org/manual/reference/command/getLastError/#dbcmd.getLastError

http://docs.mongodb.org/manual/reference/command/serverStatus/#metrics

 

"operation" : {

"fastmod" : NumberLong(23990485), //使用$inc操作增加資料記錄,而且該列沒有使用索引的update次數

"idhack" : NumberLong(0), //使用_id列進行查詢的次數,這是mongodb會預設使用_id索引並且跳過查詢計劃解析

"scanAndOrder" :NumberLong(33042) //無法使用索引進行排序的次數

},

"queryExecutor" : {

"scanned" : NumberLong("334236661328319"),//查詢或查詢計劃中掃描的總行數

"scannedObjects" :NumberLong("776725143947") //

},

"record" : {

"moves" :NumberLong(44166) //文檔在硬碟上的移動總次數

},

"repl" : {

"apply" : {

"batches": {

"num": 162, //複本集中slave節點的oplog應用進程個數

"totalMillis": 14 //mongod從oplog中操作所花的總時間

},

"ops" :NumberLong(599) //oplog操作的總個數

},

"buffer" : {

"count" :NumberLong(0), //oplog buffer中的當前操作個數

"maxSizeBytes": 268435456, //oplog buffer的最大值,常量,不可再配置

"sizeBytes": NumberLong(0) //當前oplog buffer的大小

},

"network" : {

"bytes" :NumberLong(282864), //從複製源總讀取的資料量總大小

"getmores": {

"num": 164, //執行getmores操作的個數

"totalMillis": 15595 //getmores操作所花的總時間

},

"ops" :NumberLong(599), //從複製源中讀取的操作總次數

"readersCreated" : NumberLong(12) //oplog查詢線程建立的個數,當發送connection,timeout,或者網路操作,重新選擇複製源,該值都會增加

},

"preload" : {

"docs" : {

"num": 0,

"totalMillis": 0

},

"indexes": {

"num": 2396,

"totalMillis": 0

}

}

},

"storage" : {

"freelist" : {

"search" :{

"bucketExhausted": NumberLong(0),

"requests": NumberLong(1091000085),

"scanned": NumberLong(1139483866)

}

}

},

"ttl" : {

"deletedDocuments": NumberLong(1015082231), //使用了ttl索引的次數

"passes" :NumberLong(174032) //後天使用ttl索引刪除文檔的次數

}

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.