MongoDB实战(8)性能监控
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,一、mongosniff此工具可以从底层监控到底有哪些命令发送给了 MongoDB 去执行,从中就可以进行分析:以 root 身份执行:./mongosniff --source NET lo然后其会
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
es数据库节点
江北区便宜软件开发电话
陆陆互联网络科技
普法网络安全案例
交换机与服务器连接用什么光模块
pgsql 命令删除数据库
如何衡量网络安全
服务器被人恶意攻击
服务器出现故障如何重新启动
数据库选人控件
博雅数据库二本投挡线四川理科
新城区软件开发推荐
软件开发过程中的幂等性有哪些
网络安全与网络道德教案
浙江服务器阵列卡配置
如何获取ncbi数据库
db2中怎么连接数据库
拉货宝网络技术有限公司
自考本科软件开发
电信微信无法连接服务器
利驰sql2005建立数据库
满足个数据库
在VS中用代码写入数据库
标本零连接不到服务器
思科网络安全认证体系
天津通讯软件开发设施
中国电信网络安全审查
张店办公系统oa软件开发公司
太原软件开发工具
软件开发 女生