mongostat mongodb自带性能检测工具,它会间隔固定时间获取mongodb的当前运行状态,并输信息,
感觉和iostate,vmstat命令类似,都是使用采用固定时间获取信息。
mongostate命令输出包含下面一些选项
[root@SJZX-test03 ~]# mongostat --port 28017 --host 127.0.0.1
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn set repl time
*0 *0 *0 *0 0 4|0 0.0% 0.0% 0 1.47G 87.0M 0|0 1|0 687b 61.4k 7 my_repl PRI May 16 14:20:24.305
*0 *0 *0 *0 0 2|0 0.0% 0.0% 0 1.47G 87.0M 0|0 1|0 158b 60.2k 7 my_repl PRI May 16 14:20:25.305
返回反映1秒钟内的操作的值。当mongostat <sleeptime>的值大于1时对统计数据进行平均以反映每秒的平均操作。
insert,query,update,delete:每秒的增删改查次数
getmore:每秒获得更多(即游标批次)操作的次数。
command:每秒的命令数,比以上插入、查找、更新、删除的综合还多,还统计了别的命令
flushs:
对于WiredTiger存储引擎指的是在每个轮询间隔之间触发的WiredTiger检查点的数量。
对于MMAPv1存储引擎表示每秒fsync操作的数量 。
dirty:仅适用于WiredTiger存储引擎带脏字节的WiredTiger缓存的百分比
userd:仅适用于WiredTiger存储引擎正在使用的WiredTiger缓存的百分比
mapped:仅适用于MMAPv1存储引擎以兆字节为单位映射的数据总量
vsize :虚拟内存使用量,单位MB
res: 物理内存使用量,单位MB
faults: 每秒访问失败数(只有Linux有),数据被交换出物理内存,放到swap。不要超过100,否则就是机器内存太小,造成频繁swap写入。此时要升级内存或者扩展
locked: 被锁的时间百分比,尽量控制在50%以下吧
idx miss : 索引不命中所占百分比。如果太高的话就要考虑索引是不是少了
q t|r|w: 当Mongodb接收到太多的命令而数据库被锁住无法执行完成,它会将命令加入队列。这一栏显示了总共、读、写3个队列的长度,都为0的话表示mongo毫无压力。高并发时,一般队列值会升高。
conn: 当前连接数
time: 时间戳
参考文档:
https://docs.mongodb.com/manual/reference/program/mongostat/index.html