MongoDB mongostat、mongotop和实时监控工具motop

来源:互联网 发布:php.ini file uploads 编辑:程序博客网 时间:2024/04/30 05:55

MongoDB自带了mongostat 和 mongotop 这两个命令来监控MongoDB的运行情况。这两个命令对于我们处理MongoDB数据库变慢等等问题非常有用,能详细的统计MongoDB当前的状态信息。除此之外,还可以用db.serverStatus()、db.stats()、开启profile功能通过查看日志进行监控分析。

一、mongotop

mongotop用来跟踪MongoDB的实例,提供每个集合的统计数据。默认情况下,mongotop每一秒刷新一次。

./bin/mongotop --helpView live MongoDB collection statistics.Options:  --help                                显示帮助信息  -v [ --verbose ]                      be more verbose (include multiple times                                        for more verbosity e.g. -vvvvv)  --quiet                               silence all non error diagnostic                                         messages  --version                             版本号  -h [ --host ] arg                     主机地址( <set name>/s1,s2 for sets)  --port arg                            服务端口,也可以使用 --host hostname:port  --ipv6                                开启IPV6,默认关闭  -u [ --username ] arg                 用户名  -p [ --password ] arg                 密码  --authenticationDatabase arg          user source (defaults to dbname)  --authenticationMechanism arg (=MONGODB-CR)                                        authentication mechanism  --gssapiServiceName arg (=mongodb)    Service name to use when authenticating                                        using GSSAPI/Kerberos  --gssapiHostName arg                  Remote host name to use for purpose of                                         GSSAPI/Kerberos authentication  --locks                               查看数据库锁的情况
如:

                            ns       total        read       write              2015-03-21T04:27:30                User.User.user         0ms         0ms         0ms           User.system.indexes         0ms         0ms         0ms        User.system.namespaces         0ms         0ms         0ms                     User.user         0ms         0ms         0ms          admin.system.indexes         0ms         0ms         0ms            admin.system.roles         0ms         0ms         0ms            admin.system.users         0ms         0ms         0ms
输出字段说明:
ns:数据库命名空间,后者结合了数据库名称和集合。
db:数据库的名称。名为 . 的数据库针对全局锁定,而非特定数据库。
total:mongod在这个命令空间上花费的总时间。
read:在这个命令空间上mongod执行读操作花费的时间。
write:在这个命名空间上mongod进行写操作花费的时间。

二、mongostat
它每秒钟刷新一次状态值,提供良好的可读性,通过这些参数可以观察到一个整体的性能情况。

 ./bin/mongostat --helpView live MongoDB performance statistics.usage: mongostat [options] [sleep time]sleep time: time to wait (in seconds) between callsOptions:  --help                                produce help message  -v [ --verbose ]                      be more verbose (include multiple times                                        for more verbosity e.g. -vvvvv)  --quiet                               silence all non error diagnostic                                         messages  --version                             print the program's version and exit  -h [ --host ] arg                     mongo host to connect to ( <set                                         name>/s1,s2 for sets)  --port arg                            server port. Can also use --host                                         hostname:port  --ipv6                                enable IPv6 support (disabled by                                         default)  -u [ --username ] arg                 username  -p [ --password ] arg                 password  --authenticationDatabase arg          user source (defaults to dbname)  --authenticationMechanism arg (=MONGODB-CR)                                        authentication mechanism  --gssapiServiceName arg (=mongodb)    Service name to use when authenticating                                        using GSSAPI/Kerberos  --gssapiHostName arg                  Remote host name to use for purpose of                                         GSSAPI/Kerberos authentication  --noheaders                           don't output column names  -n [ --rowcount ] arg (=0)            number of stats lines to print (0 for                                         indefinite)  --http                                use http instead of raw db connection  --discover                            discover nodes and display stats for                                         all  --all                                 all optional fields Fields   inserts      - # of inserts per second (* means replicated op)   query        - # of queries per second   update       - # of updates per second   delete       - # of deletes per second   getmore      - # of get mores (cursor batch) per second   command      - # of commands per second, on a slave its local|replicated   flushes      - # of fsync flushes per second   mapped       - amount of data mmaped (total data size) megabytes   vsize        - virtual size of process in megabytes   res          - resident size of process in megabytes   non-mapped   - amount virtual memeory less mapped memory (only with --all)   faults       - # of pages faults per sec   locked       - name of and percent time for most locked database   idx miss     - percent of btree page misses (sampled)   qr|qw        - queue lengths for clients waiting (read|write)   ar|aw        - active clients (read|write)   netIn        - network traffic in - bytes   netOut       - network traffic out - bytes   conn         - number of open connections   set          - replica set name   repl         - replication type                     PRI - primary (master)                    SEC - secondary                    REC - recovering                    UNK - unknown                    SLV - slave              b     RTR - mongos process ("router")
如:
./mongostat --host 192.168.100.90:10000 -vvvvvinsert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn set repl time    *0 *0 *0 *0 0 2|0 0 448m 3.22g 74m 0 test:0.0% 0 0|0 0|0 120b 4k 26 shard_a PRI 17:43:51    *0 *0 *0 *0 0 3|0 0 448m 3.22g 74m 0 local:0.0% 0 0|0 0|0 353b 4k 26 shard_a PRI 17:43:52    *0 *0 *0 *0 1 2|0 0 448m 3.22g 74m 0 test:0.0% 0 0|0 0|0 167b 4k 26 shard_a PRI 17:43:53
字段说明:
insert: 每秒插入量
query: 每秒查询量
update: 每秒更新量
delete: 每秒删除量
locked: 锁定量
qr | qw: 客户端查询排队长度(读|写)
ar | aw: 活跃客户端量(读|写)
conn: 连接数
time: 当前时间

三、实时监控工具motop
mongodb实时监控工具,可以同时对多个MongoDB服务器进行监控。显示当前操作。 
项目地址:https://github.com/tart/motop
1.安装 
依赖包 
python 2.6 或以上 
pymongo 2.0 或以上 
1)使用easy_install安装 
# wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python 
# easy_install motop 
2)源码安装 
# wget https://github.com/tart/motop/archive/master.zip
# unzip master.zip 
# ./setup.py install 
3.帮助 
# motop -h 
4.监控多台 
# motop 192.168.124.50 192.158.124.51 
动作: 
q Quit 
p Pause 
e Explain the query 
k Kill operation using “mongo” executable 
K Kill operations older than given seconds using “mongo” executable 
r Try to reconnect to disconnected servers 
R Try to reconnect to all servers 
5.配置 
配置文件可以创建在/etc/motop.conf。可以有多个配置短,每一节都可以包含以下参数: 
address: 服务器的地址(必需) 
username: 登陆用户名 
password:登陆用户密码 
status:显示状态(默认开启) 
replicationInfo :显示复制状态(默认值:开启) 
replicaSet :显示副本集的状态(默认值:开启) 
operations:显示操作(默认值:开启) 
replicationOperations :不断展现主和从的复制操作(默认值:开启) 
“DEFAULT”是特殊的部分。本节参数可以设置为默认。 
配置实例: 
[MongoDB01] 
address=10.42.2.121 
replicationOperations=off 
[MongoDB02] 
address=10.42.2.122 
[MongoDB03] 
address=10.42.2.123 
[MongoDB04] 
address=10.42.2.124 
username=foo 
password=bar

0 0
原创粉丝点击