栏目头部广告

MongoDB高频命令集合

1、MongoDB查看连接数

> db.serverStatus().connections
{ 
    "current" : 10,         # 当前连接数
    "available" : 19990,    # 可用连接数
    "totalCreated" : 10706  # 截止目前为止总共创建的连接数
}

2、MongoDB查看基本信息

> db.serverStatus()
{
	"host" : "913c765620c9",                           # 主机名
	"version" : "3.6.8",                               # MongoDB版本
	"process" : "mongod",                              # mongodb进程,主要有mongod和mongos(分片集群中)两种
	"pid" : NumberLong(33),                            # mongod的pid进程号,可用shell的pidof mongod命令验证
	"uptime" : 89256,                                  # mongod服务启动后到现在已经存活的秒数
	"uptimeMillis" : NumberLong(89255830),             # mongod服务启动后到现在已经存活的毫秒数
	"uptimeEstimate" : NumberLong(89255),              # mongod内部计算出来的存活秒数
	"localTime" : ISODate("2021-08-26T03:58:13.812Z"), # 本地时间
	……
}

3、MongoDB查看锁信息

Mongodb有4种锁:r,R,w,W
R      # 共享锁(S)
W     # 排它锁(X)
r       # 意向共享锁(IS)
w     # 意向排它锁(IX)

> db.serverStatus().connections
{
    "Global" : {
        "timeLockedMicros": {
            "R" :NumberLong(2532219), # mongod启动后所有库持有全局读锁的总微秒数
            "W" :NumberLong(2022505)  # mongod启动后所有库持有全局写锁的总微秒数
        },
        "timeAcquiringMicros": {
            "R" :NumberLong(1489378), # mongod启动后所有库全局读锁的锁等待的总微秒数
            "W" :NumberLong(361350)   # mongod启动后所有库全局写锁的锁等待的总微秒数
        }
    },
    "admin" : {
        "timeLockedMicros": {
            "r" :NumberLong(277350),# mongod启动后admin数据库持有的读锁时间
            "w" :NumberLong(0)      # mongod启动后admin数据库持有的写锁时间
        },
        "timeAcquiringMicros": {
            "r" :NumberLong(11011), # mongod启动后admin数据库的读锁的锁等待总时间
            "w" :NumberLong(0)      # mongod启动后admin数据库的写锁的锁等待总时间
        }
    },
    "local" : {
        "timeLockedMicros": {
            "r" :NumberLong(29750564),
            "w" :NumberLong(737)
        },
        "timeAcquiringMicros": {
            "r" :NumberLong(4074456),
            "w" :NumberLong(46)
        }
    },
    "stargao" : {
        "timeLockedMicros": {
            "r" :NumberLong(935802), # mongod启动后stargao数据库持有的读锁时间
            "w" :NumberLong(98)      # mongod启动后stargao数据库持有的写锁时间
        },

        "timeAcquiringMicros": {
            "r" :NumberLong(262185), # mongod启动后stargao数据库的读锁的锁等待总时间
            "w" : NumberLong(9)      # mongod启动后stargao数据库的写锁的锁等待总时间
        }
    },
}

4、MongoDB查看全局锁信息

>db.serverStatus().globalLock
{
    "totalTime" :NumberLong("172059990000"), # mongod启动后到现在的总时间,单位微秒
    "lockTime" :NumberLong(2031058),         # mongod启动后全局锁锁住的总时间,单位微秒
    "currentQueue" : {
        "total" : 0,    # 当前的全局锁等待锁等待的个数
        "readers" : 0,  # 当前的全局读锁等待个数
        "writers" : 0   # 当前全局写锁等待个数
    },
    "activeClients" : {
        "total" : 0,    # 当前活跃客户端的个数
        "readers" : 0,  # 当前活跃客户端中进行读操作的个数
        "writers" : 0   # 当前活跃客户端中进行写操作的个数
    }
}

5、MongoDB查看内存信息

>db.serverStatus().mem
{
    "bits" : 64,                 # 操作系统位数
    "resident" : 76,             # 物理内存消耗,单位M
    "virtual" : 1562,            # 虚拟内存消耗
    "supported" : true,          # 为true表示支持显示额外的内存信息
    "mapped" : 171399,           # 映射内存
    "mappedWithJournal" : 328798 # 除了映射内存外还包括journal日志消耗的映射内存
}

6、MongoDB查看额外信息

>db.serverStatus().extra_info
{
    "note" : "fields vary byplatform",   # 表示当前这个extra_info的显示信息依赖于底层系统
    "heap_usage_bytes" :11012,           # 堆内存空间占用的字节数,仅linux适用
    "page_faults" : 110081               # 数据库访问数据时发现数据不在内存时的页面数量,当数据库性能很差或者数据量极大时,这个值会显著上升
}

7、MongoDB索引统计信息

>db.serverStatus().indexCounters
{
    "accesses" : 35369670951, # 索引访问次数,值越大表示你的索引总体而言建得越好,如果值增长很慢,表示系统建的索引有问题
    "hits" : 35369213426,     # 索引命中次数,值越大表示mogond越好地利用了索引
    "misses" : 0,             # 表示mongod试图使用索引时发现其不在内存的次数,越小越好
    "resets" : 0,             # 计数器重置的次数
    "missRatio" : 0           # 丢失率,即misses除以hits的值
}

8、MongoDB刷盘情况

>db.serverStatus().backgroundFlushing
{
    "flushes" : 171675,                                   # 数据库刷新写操作到磁盘的总次数,会逐渐增长
    "total_ms" : 432943335,                               # mongod写数据到磁盘消耗的总时间,单位ms,
    "average_ms" :2521.8775884665793,                     # 上述两值的比例,表示每次写磁盘的平均时间
    "last_ms" : 5329,                                     # 当前最后一次写磁盘花去的时间,ms,结合上个平均值可观察到mongd总体写性能和当前写性能
    "last_finished" :ISODate("2021-08-26T07:39:11.881Z")  # 最后一次写完成的时间
}

9、MongoDB游标信息

>db.serverStatus().cursors
{
    "note" : "deprecated,use server status metrics", # 表示也可使用b.serverStatus().metrics.cursor命令看看
    "clientCursors_size" : 2,                        # mongodb当前为客户端维护的游标个数
    "totalOpen" : 2,                                 # 和clientCursors_size一样
    "pinned" : 0,                                    # 打开的pinned类型的游标个数
    "totalNoTimeout" : 0,                            # 设置了经过一段不活跃时间以后不设置超时,即参数“ DBQuery.Option.noTimeout”值以后,打开的游标个数
    "timedOut" : 11                                  # 从mongod启动以来的游标超时个数,如果这个值很大或者一直在增长,可能显示当前应用程序有错误
}

10、MongoDB网络信息

>db.serverStatus().network
{
	"bytesIn" : NumberLong(93664665),            # 数据库接收到的网络传输字节数,可通过该值观察是否到了预计的期望值
	"bytesOut" : NumberLong(1352994963),         # 从数据库发送出去的网络传输字节数
	"physicalBytesIn" : NumberLong(83261796),
	"physicalBytesOut" : NumberLong(1329475811),
	"numRequests" : NumberLong(369766),          # mongod接收到的总的请求次数
	"compression" : {
		"snappy" : {
			"compressor" : {
				"bytesIn" : NumberLong(105616353),
				"bytesOut" : NumberLong(79531394)
			},
			"decompressor" : {
				"bytesIn" : NumberLong(71564220),
				"bytesOut" : NumberLong(96573759)
			}
		}
	},
	"serviceExecutorTaskStats" : {
		"executor" : "passthrough",
		"threadsRunning" : 10
	}
}

11、MongoDB查看副本信息

> db.serverStatus().repl
{
	"hosts" : [                           # 副本集组成
		"192.168.0.40:27017",
		"192.168.0.116:27017"
	],
	"arbiters" : [
		"192.168.0.197:27017"
	],
	"setName" : "udb-vgtzs5rk",            # 副本集名称
	"setVersion" : 3,                      # 当前版本,每修改一次配置会自增1
	"ismaster" : true,                     # 当前节点是否为master
	"secondary" : false,                   # 当前节点是否为slave
	"primary" : "192.168.0.40:27017",      # master所在的ip地址
	"me" : "192.168.0.40:27017",           # 当前节点的ip地址
	"electionId" : ObjectId("7fffffff0000000000000001"),
	"lastWrite" : {
		"opTime" : {
			"ts" : Timestamp(1629956428, 1),
			"t" : NumberLong(1)
		},
		"lastWriteDate" : ISODate("2021-08-26T05:40:28Z"),
		"majorityOpTime" : {
			"ts" : Timestamp(1629956428, 1),
			"t" : NumberLong(1)
		},
		"majorityWriteDate" : ISODate("2021-08-26T05:40:28Z")
	},
	"rbid" : 1
}

12、MongoDB副本集的操作计数器

> db.serverStatus().opcountersRepl
{
	"insert" : 0,   # mongod replication最近一次启动后的insert次数
	"query" : 0,
	"update" : 0,
	"delete" : 0,
	"getmore" : 0,
	"command" : 0
}

13、MongoDB操作计数器

>db.serverStatus().opcounters
{
    "insert" : 17476744,  # mongod最近一次启动后的insert次数
    "query" : 4923585,    # mongod最近一次启动后的query次数
    "update" : 445136,    # mongod最近一次启动后的update次数
    "delete" : 301953,    # mongod最近一次启动后的delete次数
    "getmore" : 28737548, # mongod最近一次启动后的getmore次数,这个值可能会很高,因为子节点会发送getmore命令,作为数据复制操作的一部分
    "command" : 32844821  # mongod最近一次启动后的执行command命令的次数
}

14、MongoDB Asserts计数

>db.serverStatus().asserts
{
    "regular" : 65,    # 服务启动后正常的asserts错误个数,可通过log查看更多该信息
    "warning" : 1,     # 服务启动后的warning个数
    "msg" : 0,         # 服务启动后的message assert个数
    "user" : 20955213, # 服务启动后的user asserts个数
    "rollovers" : 0    # 服务启动后的重置次数
}

15、查看副本集状态

> rs.status()
{
	"set" : "stargao-cluster",
	"date" : ISODate("2021-09-08T07:13:18.275Z"),
	"myState" : 1,
	"term" : NumberLong(54),
	"heartbeatIntervalMillis" : NumberLong(2000),
	"members" : [
		{
			"_id" : 4,
			"name" : "10.0.0.1:27017",
			"health" : 1,
			"state" : 7,
			"stateStr" : "ARBITER",
			"uptime" : 100644,
			"lastHeartbeat" : ISODate("2021-09-08T07:13:17.463Z"),
			"lastHeartbeatRecv" : ISODate("2021-09-08T07:13:17.463Z"),
			"pingMs" : NumberLong(0),
			"configVersion" : 256744
		},
		{
			"_id" : 9,
			"name" : "10.0.0.2:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 100718,
			"optime" : {
				"ts" : Timestamp(1631085198, 97),
				"t" : NumberLong(54)
			},
			"optimeDate" : ISODate("2021-09-08T07:13:18Z"),
			"electionTime" : Timestamp(1630984564, 1),
			"electionDate" : ISODate("2021-09-07T03:16:04Z"),
			"configVersion" : 256744,
			"self" : true
		},
		{
			"_id" : 10,
			"name" : "10.0.0.27:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 88554,
			"optime" : {
				"ts" : Timestamp(1631085196, 240),
				"t" : NumberLong(54)
			},
			"optimeDate" : ISODate("2021-09-08T07:13:16Z"),
			"lastHeartbeat" : ISODate("2021-09-08T07:13:16.640Z"),
			"lastHeartbeatRecv" : ISODate("2021-09-08T07:13:17.886Z"),
			"pingMs" : NumberLong(0),
			"syncingTo" : "10.9.102.243:27017",
			"configVersion" : 256744
		}
	],
	"ok" : 1
}

16、查看副本集优先级

> rs.config();
{
	"_id" : "stargao-cluster",
	"version" : 256744,
	"protocolVersion" : NumberLong(1),
	"members" : [
		{
			"_id" : 4,
			"host" : "10.0.0.1:27017",
			"arbiterOnly" : true,
			"buildIndexes" : true,
			"hidden" : false,
			"priority" : 1,
			"tags" : {
				
			},
			"slaveDelay" : NumberLong(0),
			"votes" : 1
		},
		{
			"_id" : 9,
			"host" : "10.0.0.2:27017",
			"arbiterOnly" : false,
			"buildIndexes" : true,
			"hidden" : false,
			"priority" : 1,
			"tags" : {
				
			},
			"slaveDelay" : NumberLong(0),
			"votes" : 1
		},
		{
			"_id" : 10,
			"host" : "10.0.0.3:27017",
			"arbiterOnly" : false,
			"buildIndexes" : true,
			"hidden" : false,
			"priority" : 1,
			"tags" : {
				
			},
			"slaveDelay" : NumberLong(0),
			"votes" : 1
		}
	],
	"settings" : {
		"chainingAllowed" : true,
		"heartbeatIntervalMillis" : 2000,
		"heartbeatTimeoutSecs" : 10,
		"electionTimeoutMillis" : 10000,
		"getLastErrorModes" : {
			
		},
		"getLastErrorDefaults" : {
			"w" : 1,
			"wtimeout" : 0
		},
		"replicaSetId" : ObjectId("5996b5557e2461f8669b82a3")
	}
}

作者:UStarGao
链接:https://www.starcto.com/mongodb/220.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`