一、OS层面
1、MongoDB当前运行状态 — mongostat
# mongostat -uroot -p123 -h127.0.0.1 --port=28888 --authenticationDatabase=admin
insert query update delete getmore command flushes mapped vsize res faults qr|qw ar|aw netIn netOut conn time
*0 *0 *0 *0 0 1|0 0 624.0M 1.5G 48.0M 0 0|0 0|0 79b 10k 2 15:35:29
*0 *0 *0 *0 0 1|0 0 624.0M 1.5G 48.0M 0 0|0 0|0 79b 10k 2 15:35:30
*0 *0 *0 *0 0 1|0 0 624.0M 1.5G 48.0M 0 0|0 0|0 79b 10k 2 15:35:31
*0 *0 *0 *0 0 1|0 0 624.0M 1.5G 48.0M 0 0|0 0|0 79b 10k 2 15:35:32
*0 *0 *0 *0 0 6|0 0 624.0M 1.5G 48.0M 0 0|0 0|0 635b 11k 2 15:35:33
*0 *0 *0 *0 0 1|0 0 624.0M 1.5G 95.0M 6 0|0 0|0 79b 10k 2 15:35:34
*0 *0 *0 *0 0 1|0 0 624.0M 1.5G 95.0M 0 0|0 0|0 79b 10k 2 15:35:35
3064 *0 *0 *0 0 1|0 0 624.0M 1.5G 47.0M 4 0|0 0|0 529k 182k 2 15:35:36
3390 *0 *0 *0 0 1|0 0 624.0M 1.5G 48.0M 0 0|0 0|0 587k 200k 2 15:35:37
3285 *0 *0 *0 0 6|0 0 624.0M 1.5G 47.0M 0 0|0 0|0 569k 195k 2 15:35:38
参数解释
insert 每秒插入量
query 每秒查询量
update 每秒更新量
delete 每秒删除量
getmore 每秒查询游标时的getmore操作数
command 每秒执行命令数(本地|复制) //一秒内的批量插入被认定为一条命令,所以该参数意义不大
flushes WiredTiger引擎:checkpoint的触发次数在一个轮询间隔期间
MMAPv1引擎:每秒执行fsync将数据写入磁盘的次数
//该参数一般是0,间歇性是1,通过计算两个1之间的间隔时间可以大致了解多久flush一次。如果flush频繁可能表示有问题。
mapped
vsize 虚拟内存使用量,单位MB
res 物理内存使用率,单位MB(mongostat最后一次调用的总数据)
faults
qr|qw 客户端队列查询长度(读|写)最好为0,如果有堆积,数据库处理慢
ar|aw 活跃客户端数量(读|写)
//如果该参数比较大,那说明DB处理的速度跟不上请求的速度,可能存在慢查询
netIn 网络进流量
netOut 网络出流量
//网络带宽压力,一般来讲网络带宽不会成为性能瓶颈
conn 当前连接总数 = qr + qw + ar + aw
//MongoDB为每隔连接创建一个线程,线程的的创建和释放都是有开销的,5000的连接数基本满足所有场景
time 当前时间
2、MongoDB当前运行状态 — mongotop
# mongotop -h127.0.0.1 --port=28888 \
> -u=root -p=123 --authenticationDatabase=admin
2018-11-16T15:38:56.437+0800 connected to: 127.0.0.1:28888
ns total read write 2018-11-16T15:38:59+08:00
admin.system.users 89ms 89ms 0ms
test.dd 30ms 0ms 30ms
admin 0ms 0ms 0ms
admin.aa 0ms 0ms 0ms
admin.system.indexes 0ms 0ms 0ms
admin.system.namespaces 0ms 0ms 0ms
admin.system.profile 0ms 0ms 0ms
admin.system.roles 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
重要指标解释:
ns 数据库命名空间,后者结合了数据库名称和集合
total mongod在这个命令空间上花费的总时间。
read 在这个命令空间上mongod执行读操作花费的时间
write 在这个命名空间上mongod进行写操作花费的时间