溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MongoDB實(shí)戰(zhàn)(8)性能監(jiān)控

發(fā)布時(shí)間:2020-06-07 04:28:50 來源:網(wǎng)絡(luò) 閱讀:1044 作者:shayang88 欄目:MongoDB數(shù)據(jù)庫

一、mongosniff


此工具可以從底層監(jiān)控到底有哪些命令發(fā)送給了 MongoDB 去執(zhí)行,從中就可以進(jìn)行分析:
以 root 身份執(zhí)行:

./mongosniff --source NET lo

然后其會(huì)監(jiān)控位到本地以 localhost 監(jiān)聽默認(rèn) 27017 端口的 MongoDB 的所有包請(qǐng)求,如執(zhí)
行”show dbs” 操作:

[root@localhost bin]# ./mongo
MongoDB shell version: 1.8.1
connecting to: test
> show dbs
admin 0.0625GB
foo
0.0625GB
local (empty)
test
0.0625GB

那么你可以看到如下輸出

[root@localhost bin]# ./mongosniff --source NET lo
sniffing... 27017
127.0.0.1:38500 -->> 127.0.0.1:27017 admin.$cmd 60 bytes id:537ebe0f 1400815119
query: { whatsmyuri: 1 } ntoreturn: 1 ntoskip: 0
127.0.0.1:27017 <<-- 127.0.0.1:38500 78 bytes id:531c3855 1394358357 - 1400815119
reply n:1 cursorId: 0
{ you: "127.0.0.1:38500", ok: 1.0 }
127.0.0.1:38500 -->> 127.0.0.1:27017 admin.$cmd 80 bytes id:537ebe10 1400815120
query: { replSetGetStatus: 1, forShell: 1 } ntoreturn: 1 ntoskip: 0
127.0.0.1:27017 <<-- 127.0.0.1:38500 92 bytes id:531c3856 1394358358 - 1400815120
reply n:1 cursorId: 0
{ errmsg: "not running with --replSet", ok: 0.0 }
127.0.0.1:38500 -->> 127.0.0.1:27017 admin.$cmd 67 bytes id:537ebe11 1400815121
query: { listDatabases: 1.0 } ntoreturn: -1 ntoskip: 0
127.0.0.1:27017 <<-- 127.0.0.1:38500 293 bytes id:531c3857 1394358359 - 1400815121
reply n:1 cursorId: 0
{ databases: [ { name: "foo", sizeOnDisk: 67108864.0, empty: false }, { name: "test",
sizeOnDisk: 67108864.0, empty: false }, { name: "admin", sizeOnDisk: 67108864.0, empty: false },
{ name: "local", sizeOnDisk: 1.0, empty: true } ], totalSize: 201326592.0, ok: 1.0 }
127.0.0.1:38500 -->> 127.0.0.1:27017 admin.$cmd 80 bytes id:537ebe12 1400815122
query: { replSetGetStatus: 1, forShell: 1 } ntoreturn: 1 ntoskip: 0
127.0.0.1:27017 <<-- 127.0.0.1:38500 92 bytes id:531c3858 1394358360 - 1400815122
reply n:1 cursorId: 0
{ errmsg: "not running with --replSet", ok: 0.0 }

如果將這些輸出到一個(gè)日志文件中,那么就可以保留下所有數(shù)據(jù)庫操作的歷史記錄,
對(duì)于后期的性能分析和安全審計(jì)等工作將是一個(gè)巨大的貢獻(xiàn)。


二、mongostat

此工具可以快速的查看某組運(yùn)行中的 MongoDB 實(shí)例的統(tǒng)計(jì)信息,用法如下:
[root@localhost bin]# ./mongostat
下面是執(zhí)行結(jié)果(部分):

./mongostat
connected to: 127.0.0.1
insert  query update delete getmore command flushes mapped  vsize    res faults  locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn       time
    *0     *0     *0     *0       0     1|0       0   160m   507m    50m      0  test:0.0%          0       0|0     0|0    62b     2k     1   20:21:26
    *0     *0     *0     *0       0     1|0       0   160m   507m    50m      0  test:0.0%          0       0|0     0|0    62b     2k     1   20:21:27
    *0     *0     *0     *0       0     1|0       0   160m   507m    50m      0  test:0.0%          0       0|0     0|0    62b     2k     1   20:21:28
    *0      2     *0     *0       0     1|0       1   160m   507m    50m      0  test:0.0%          0       0|0     0|0    62b     2k     1   20:21:29
    *0     *0     *0     *0       0     1|0       0   160m   507m    50m      0  test:0.0%          0       0|0     0|0    62b     2k     1   20:21:30

字段說明:
insert: 每秒插入量
query: 每秒查詢量
update: 每秒更新量
delete: 每秒刪除量
locked: 鎖定量
qr | qw: 客戶端查詢排隊(duì)長(zhǎng)度(讀|寫)
ar | aw: 活躍客戶端量(讀|寫)
conn: 連接數(shù)
time: 當(dāng)前時(shí)間


它每秒鐘刷新一次狀態(tài)值,提供良好的可讀性,通過這些參數(shù)可以觀察到一個(gè)整體的性能情況。


三、DB信息


1、db.serverStatus

MongoDB實(shí)戰(zhàn)(8)性能監(jiān)控

MongoDB實(shí)戰(zhàn)(8)性能監(jiān)控

MongoDB實(shí)戰(zhàn)(8)性能監(jiān)控

2、db.stats

db.stats 查看數(shù)據(jù)庫狀態(tài)信息。使用樣例如下:

> db.stats()
{
    "db" : "test",
    "collections" : 9, #collection數(shù)量
    "objects" : 52,    #對(duì)象數(shù)量
    "avgObjSize" : 60.46153846153846, #對(duì)象平均大小
    "dataSize" : 3144, #數(shù)據(jù)大小
    "storageSize" : 249856,#數(shù)據(jù)大小含預(yù)分配空間
    "numExtents" : 9,#事件數(shù)量
    "indexes" : 9,#索引數(shù)量
    "indexSize" : 73584,#索引大小
    "fileSize" : 201326592,#文件大小
    "nsSizeMB" : 16,
    "dataFileVersion" : {
        "major" : 4,
        "minor" : 5
    },
    "ok" : 1
}


MongoDB 從一面世就得到眾多開源愛好者和團(tuán)隊(duì)的重視,在常用的監(jiān)控框架如 cacti、
Nagios、Zabbix 等基礎(chǔ)上進(jìn)行擴(kuò)展,進(jìn)行 MongoDB 的監(jiān)控都是非常方便的。




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI