MongoDB 状态检测 ( mongostat )
MongoDB mongostat 脚本用来检测 MongoDB 服务的状态。
我们安装部署并启动 MongoDB 服务后,必须要了解 MongoDB 的运行情况,并查看 MongoDB 的性能。
这样在流量比较大的是可以很好的应对并保证 MongoDB 持续正常运作。
MongoDB 中提供了 mongostat 和 mongotop 两个命令来监控 MongoDB 的运行情况。
mongostat 命令
mongostat 是 MongoDB 自带的状态检测工具,在命令行下使用。
mogostat 命令会间隔固定时间获取 MongoDB 的当前运行状态,并输出。
如果你发现数据库突然变慢或者有其他问题的话,首先要做的操作就考虑采用 mongostat 来查看mongo的状态。
语法
MongoDB mongostat 脚本命令语法格式如下
$ mongostat
范例
$ mongostat
输出结果如下
$ mongostat
insert query update delete getmore command flushes mapped vsize res faults qrw arw net_in net_out conn time
*0 *0 *0 *0 0 2|0 0 6.49G 18.0M 0 0|0 0|0 160b 24.5k 2 Oct 24 07:56:41.321
*0 *0 *0 *0 0 2|0 0 6.49G 18.0M 0 0|0 0|0 158b 24.1k 2 Oct 24 07:56:42.317
*0 *0 *0 *0 0 1|0 0 6.49G 18.0M 0 0|0 0|0 157b 24.0k 2 Oct 24 07:56:43.319
*0 *0 *0 *0 0 2|0 0 6.49G 18.0M 0 0|0 0|0 158b 24.1k 2 Oct 24 07:56:44.317
MongoDB 性能跟踪 ( mongotop )
MongoDB mongotop 脚本命令用于跟踪 MongoDB 服务的性能。
mongotop MongoDB 下的一个内置工具。
mongotop 提供了一个方法,用来跟踪一个 MongoDB的实例,查看哪些大量的时间花费在读取和写入数据。
mongotop 提供每个集合的水平的统计数据。
默认情况下,mongotop 每秒输出一次数据。
语法
MongoDB mongotop 脚本命令语法如下
$ mongotop --locks
参数解析
- 指定多久输出一次数据,默认为 1 秒
- --locks 输出锁使用的情况
范例
默认参数范例
$ mongotop
输出结果如下
$ mongotop
2017-10-24T07:39:50.970+0800 connected to: 127.0.0.1
ns total read write 2017-10-24T07:39:51+08:00
admin.system.indexes 0ms 0ms 0ms
admin.system.namespaces 0ms 0ms 0ms
admin.system.roles 0ms 0ms 0ms
admin.system.users 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
gridfs.fs.chunks 0ms 0ms 0ms
gridfs.fs.files 0ms 0ms 0ms
gridfs.system.indexes 0ms 0ms 0ms
gridfs.system.namespaces 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
带参数范例
$ mongotop 10
输出结果如下
$ mongotop 10
2017-10-24T07:43:41.990+0800 connected to: 127.0.0.1
ns total read write 2017-10-24T07:43:51+08:00
admin.system.indexes 0ms 0ms 0ms
admin.system.namespaces 0ms 0ms 0ms
admin.system.roles 0ms 0ms 0ms
admin.system.users 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
gridfs.fs.chunks 0ms 0ms 0ms
gridfs.fs.files 0ms 0ms 0ms
gridfs.system.indexes 0ms 0ms 0ms
gridfs.system.namespaces 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
ns total read write 2017-10-24T07:44:01+08:00
admin.system.indexes 0ms 0ms 0ms
admin.system.namespaces 0ms 0ms 0ms
admin.system.roles 0ms 0ms 0ms
admin.system.users 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
gridfs.fs.chunks 0ms 0ms 0ms
gridfs.fs.files 0ms 0ms 0ms
gridfs.system.indexes 0ms 0ms 0ms
gridfs.system.namespaces 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
后面的10是 参数 ,可以不使用,等待的时间长度,以秒为单位 mongotop 等待调用之间
输出锁使用的情况
$ mongotop --locks
报告每个数据库的锁的使用中,输出结果如下:输出结果字段说明
- ns:
包含数据库命名空间,后者结合了数据库名称和集合。
- db:
包含数据库的名称。名为 . 的数据库针对全局锁定,而非特定数据库。
- total:
mongod 花费的时间工作在这个命名空间提供总额。
- read:
提供了大量的时间,这mongod花费在执行读操作,在此命名空间
- write:
提供这个命名空间进行写操作,这 mongod 花了大量的时间
来源:https://blog.csdn.net/qq_25843323/article/details/129292466 https://blog.csdn.net/qq_25843323/article/details/129292462