监控MongoDB状态

来源:互联网 发布:淘宝视频收费标准 编辑:程序博客网 时间:2024/05/22 01:31


mongostat

参考文章:

http://blog.csdn.net/huithe/article/details/6925684#

http://www.cnblogs.com/zhuque/archive/2013/03/29/2988577.html

http://www.cnblogs.com/renyb/archive/2013/01/18/2866632.html

感谢作者。



insert    每秒插入次数

query    每秒查询次数

update    每秒更新次数

delete    每秒删除次数

(10条简单查询可能比一条复杂的查询速度更快,所以数值大小意义不大。但至少可以知道,是否在处理查询、是否在插入)

getmore    每秒执行getmore次数(查询时游标cursor的getmore操作)

command    每秒命令数(包括增删改查以及其他所有命令)

flushes    每秒执行fsync将数据写入硬盘的次数(每秒刷新次数(一般都是0,或者1.通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。flush的开销很大,如果频繁的flush,需要找找原因))

mapped    所有被mmap的数据量,单位Mb

vsize    虚拟内存使用量,单位Mb

res mapped、vsize     一般不会有大的变动,res会慢慢的上升,如果res经常突然下降,则需要检查是否有别的程序占很大内存。

faults    每秒访问失败数(只有Linux有),数据被交换出物理内存,放到swap。不要超过100,否则就是机器内存太小,造成频繁swap写入,此时要升级内存或扩展。

locked    被锁的时间百分比,尽量控制在50%以下。MongoDB就像一把读写锁,locked指的是写锁锁住的时间的百分比。这个数值过大(经常超过10%),便是出状况了。

idx miss    索引不命中所占百分比,如果太高的话就要考虑索引是不是少了。非常重要的参数。正常情况下,所有查询应该都通过索引,也就是idx miss为0,如果这里数值较大,考虑是否缺少索引。

qr | qw    queue lengths for clients waiting (read | write)

ar | aw    active clients (read | write)

(当MongoDB接收到太多命令而数据库被锁住无法执行完成,它会将命令加入队列。如果qr | qw和ar | aw数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。看看是否有开销和大的慢查询。检查是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,那么考虑加机器)

netIn    network traffic in - bits

netOut    network traffic out - bits

(网络带宽压力。一般MongoDB,网络不会成为瓶颈)

conn    number of open onnections

(MongoDB为每一个连接创建一个线程,线程的创建和释放也是有开销的,尽量不要让这个数值很大)

repl    服务器当前状态

        M master

        SEC secondary

        REC recovering

        UNK unkown

        SLV slave

time     当前时间


0 0
原创粉丝点击