久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MongoDB中mongostat怎么用

154次閱讀
沒有評論

共計 3370 個字符,預計需要花費 9 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 MongoDB 中 mongostat 怎么用,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

mongostat 詳解

mongostat 是 mongdb 自帶的狀態檢測工具,在命令行下使用。它會間隔固定時間獲取 mongodb 的當前運行狀態,并輸出。如果你發現數據庫突然變慢或者有其他問題的話,你第一手的操作就考慮采用 mongostat 來查看 mongo 的狀態。MongoDB 中 mongostat 怎么用

它的輸出有以下幾列:

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 時間戳

使用 profiler

類似于 MySQL 的 slow log, MongoDB 可以監控所有慢的以及不慢的查詢。

MongoDB 中 mongostat 怎么用

Profiler 默認是關閉的,你可以選擇全部開啟,或者有慢查詢的時候開啟。

use test
switched to db test
db.setProfilingLevel(2);
{was : 0 , slowms : 100, ok : 1} // was is the old setting
db.getProfilingLevel()

查看 Profile 日志

db.system.profile.find().sort({$natural:-1})
{ts : Thu Jan 29 2009 15:19:32 GMT-0500 (EST) , info :
query test.$cmd ntoreturn:1 reslen:66 nscanned:0 query: {profile: 2} nreturned:1 bytes:50 ,
millis : 0} …

3 個字段的意義

ts:時間戳

info:具體的操作

millis:操作所花時間,毫秒

不多說,此處有官方文檔。注意,造成滿查詢可能是索引的問題,也可能是數據不在內存造成因此磁盤讀入造成。

使用 Web 控制臺

Mongodb 自帶了 Web 控制臺,默認和數據服務一同開啟。他的端口在 Mongodb 數據庫服務器端口的基礎上加 1000,如果是默認的 Mongodb 數據服務端口 (Which is 27017),則相應的 Web 端口為 28017

MongoDB 中 mongostat 怎么用

這個頁面可以看到

當前 Mongodb 的所有連接

各個數據庫和 Collection 的訪問統計,包括:Reads, Writes, Queries, GetMores ,Inserts, Updates, Removes

寫鎖的狀態

以及日志文件的最后幾百行 (CentOS+10gen yum 安裝的 mongodb 默認的日志文件位于 /var/log/mongo/mongod.log)

可以參考上圖

db.stat()

獲取當前數據庫的信息,比如 Obj 總數、數據庫總大小、平均 Obj 大小等

use test
switched to db test
db.stats()
{
collections : 9,
objects : 4278845,
avgObjSize : 224.56603031892953,
dataSize : 960883236,
storageSize : 1195438080,
numExtents : 59,
indexes : 13,
indexSize : 801931264,
fileSize : 6373244928,
ok : 1
}

db.serverStatus()

獲取服務器的狀態

{
version : 1.6.5 ,
uptime : 7208469,
uptimeEstimate : 7138829,
localTime : Wed Oct 26 2011 22:23:07 GMT+0800 (CST) ,
globalLock : {
totalTime : 7208469556704,
lockTime : 4959693717,
ratio : 0.000688036992871448,
currentQueue : {
total : 0,
readers : 0,
writers : 0
}
},
mem : {
bits : 64,
resident : 3131,
virtual : 6172,
supported : true,
mapped : 4927
},
connections : {
current : 402,
available : 2599
},
extra_info : {
note : fields vary by platform ,
heap_usage_bytes : 832531920,
page_faults : 8757
},
indexCounters : {
btree : {
accesses : 2821726,
hits : 2821725,
misses : 1,
resets : 0,
mi***atio : 3.543930204420982e-7
}
},
backgroundFlushing : {
flushes : 120133,
total_ms : 73235923,
average_ms : 609.6236920746173,
last_ms : 1332,
last_finished : Wed Oct 26 2011 22:22:23 GMT+0800 (CST)
},
cursors : {
totalOpen : 0,
clientCursors_size : 0,
timedOut : 238392
},
repl : {
ismaster : true
},
opcounters : {
insert : 269351,
query : 19331151,
update : 14199331,
delete : 1,
getmore : 145575,
command : 55982302
},
asserts : {
regular : 0,
warning : 0,
msg : 0,
user : 27,
rollovers : 0
},
ok : 1
}

需要關心的地方:

connections 當前連接和可用連接數,聽過一個同行介紹過,mongodb 最大處理到 2000 個連接就不行了 (要根據你的機器性能和業務來設定),所以設大了沒意義。設個合理值的話,到達這個值 mongodb 就拒絕新的連接請求,避免被太多的連接拖垮。

indexCounters:btree:misses 索引的不命中數,和 hits 的比例高就要考慮索引是否正確建立。你看我的”mi***atio”: 3.543930204420982e-7,很健康吧。所以 miss 率在 mongostat 里面也可以看

其他的都能自解釋,也不是查看 mongo 健康狀況的關鍵,就不說明了。

db.currentOp()

Mongodb 的命令一般很快就完成,但是在一臺繁忙的機器或者有比較慢的命令時,你可以通過 db.currentOp() 獲取當前正在執行的操作。

在沒有負載的機器上,該命令基本上都是返回空的

db.currentOp()
{inprog : [] }

以下是一個有負載的機器上得到的返回值樣例:

{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 中 mongostat 怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計3370字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 盐城市| 中方县| 娄烦县| 仁化县| 资兴市| 邯郸县| 卢氏县| 广灵县| 武平县| 普格县| 古交市| 河北区| 喜德县| 都兰县| 兴海县| 项城市| 滨州市| 富蕴县| 甘谷县| 方城县| 宜阳县| 图木舒克市| 蓝山县| 普定县| 固阳县| 岢岚县| 亳州市| 永胜县| 万宁市| 宜章县| 连江县| 宝山区| 德格县| 牡丹江市| 东台市| 洪雅县| 鄂托克前旗| 商水县| 北海市| 二连浩特市| 舟曲县|