MongoDB实战(8)性能监控
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一、mongosniff此工具可以从底层监控到底有哪些命令发送给了 MongoDB 去执行,从中就可以进行分析:以 root 身份执行:./mongosniff --source NET lo然后其会
千家信息网最后更新 2026年11月01日MongoDB实战(8)性能监控
一、mongosniff
此工具可以从底层监控到底有哪些命令发送给了 MongoDB 去执行,从中就可以进行分析:
以 root 身份执行:
./mongosniff --source NET lo
然后其会监控位到本地以 localhost 监听默认 27017 端口的 MongoDB 的所有包请求,如执
行"show dbs" 操作:
[root@localhost bin]# ./mongoMongoDB shell version: 1.8.1connecting to: test> show dbsadmin 0.0625GBfoo0.0625GBlocal (empty)test0.0625GB
那么你可以看到如下输出
[root@localhost bin]# ./mongosniff --source NET losniffing... 27017127.0.0.1:38500 -->> 127.0.0.1:27017 admin.$cmd 60 bytes id:537ebe0f 1400815119query: { whatsmyuri: 1 } ntoreturn: 1 ntoskip: 0127.0.0.1:27017 <<-- 127.0.0.1:38500 78 bytes id:531c3855 1394358357 - 1400815119reply 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 1400815120query: { replSetGetStatus: 1, forShell: 1 } ntoreturn: 1 ntoskip: 0127.0.0.1:27017 <<-- 127.0.0.1:38500 92 bytes id:531c3856 1394358358 - 1400815120reply 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 1400815121query: { listDatabases: 1.0 } ntoreturn: -1 ntoskip: 0127.0.0.1:27017 <<-- 127.0.0.1:38500 293 bytes id:531c3857 1394358359 - 1400815121reply 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 1400815122query: { replSetGetStatus: 1, forShell: 1 } ntoreturn: 1 ntoskip: 0127.0.0.1:27017 <<-- 127.0.0.1:38500 92 bytes id:531c3858 1394358360 - 1400815122reply n:1 cursorId: 0{ errmsg: "not running with --replSet", ok: 0.0 }如果将这些输出到一个日志文件中,那么就可以保留下所有数据库操作的历史记录,
对于后期的性能分析和安全审计等工作将是一个巨大的贡献。
二、mongostat
此工具可以快速的查看某组运行中的 MongoDB 实例的统计信息,用法如下:
[root@localhost bin]# ./mongostat
下面是执行结果(部分):
./mongostatconnected to: 127.0.0.1insert 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: 客户端查询排队长度(读|写)
ar | aw: 活跃客户端量(读|写)
conn: 连接数
time: 当前时间
它每秒钟刷新一次状态值,提供良好的可读性,通过这些参数可以观察到一个整体的性能情况。
三、DB信息
1、db.serverStatus
2、db.stats
db.stats 查看数据库状态信息。使用样例如下:
> db.stats(){ "db" : "test", "collections" : 9, #collection数量 "objects" : 52, #对象数量 "avgObjSize" : 60.46153846153846, #对象平均大小 "dataSize" : 3144, #数据大小 "storageSize" : 249856,#数据大小含预分配空间 "numExtents" : 9,#事件数量 "indexes" : 9,#索引数量 "indexSize" : 73584,#索引大小 "fileSize" : 201326592,#文件大小 "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 5 }, "ok" : 1}MongoDB 从一面世就得到众多开源爱好者和团队的重视,在常用的监控框架如 cacti、
Nagios、Zabbix 等基础上进行扩展,进行 MongoDB 的监控都是非常方便的。
大小
监控
数据
数量
信息
性能
客户
对象
工具
数据库
文件
状态
索引
分析
查询
输出
巨大
良好
事件
从中
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
互联网是第几次科技革命的成果
互联网科技有限公司经营范围
互联网通讯科技
智慧科技互联网
菲比寻常互联网科技
甘肃拓世互联网科技有限公司
北京三清互联网科技
央行互联网金融科技公司
互联网校园科技培训
宁夏科技产业互联网案例
荆州市昕露互联网络科技有限公司
西安小鹰速贷互联网科技有限公司
上海科技产业互联网平台
伍佰万互联网科技怎么赚钱
风投北京互联网科技
科技互联网行业投资研究
河南商务圈互联网科技有限公司
黑龙江互联网科技公司
瑞安市蟠桃会互联网科技有限公司
互联网高科技
新华互联网科技学校
互联网扶贫科技
合肥互联网科技公司
无线互联网科技
互联网经济与金融科技
江阴互联网智能科技产品进口
健康食品互联网创新科技园项目
企晟互联网信息科技有限公司
神州科技互联网有限公司