MongoDB实战(8)性能监控
发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,一、mongosniff此工具可以从底层监控到底有哪些命令发送给了 MongoDB 去执行,从中就可以进行分析:以 root 身份执行:./mongosniff --source NET lo然后其会
千家信息网最后更新 2025年01月30日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安全错误
数据库的锁怎样保障安全
数据库关系运算符号的由来
幼儿园大班网络安全教育宣传总结
软考数据库工程师前景如何
洛阳博发软件开发公司吗
大亨软件开发
web项目对网络安全的重要性
服务器管理重装系统
高校教职工工资管理系统数据库
景宁租房软件开发
gis数据库都有哪些数据
手机如何查看网络安全密钥
互联网科技的文字
旅游租车软件开发
数据库常规属性窗格设置w
ptr服务器分亚服美服吗
服务器管理器账户已锁定
同上一堂网络安全
网络安全法谁发行的
国资委网络安全发文
双人成行联机服务器掉了
数据库关系模式是什么
幼儿园大班网络安全教育宣传总结
网易逆水寒捏脸数据库
mysql数据库基础书
去工厂做软件开发如何
计算机网络技术名词看不懂
莆田购呗网络技术有限公司
老干妈谈互联网科技
数据库时区
联想服务器管理地址用户