mongostat 示例
在此页面上
本页显示 mongostat
的示例。
从系统命令行运行 mongostat
,而非 mongo
shell。
指定mongostat
收集周期和频率
在第一个示例中,mongostat
将在 20 秒内每秒返回一次数据。mongostat
从端口 27017 上的本地主机接口运行的 mongod
实例收集数据。以下所有调用都会产生相同的行为:
mongostat --rowcount=20 1 mongostat --rowcount=20 mongostat -n=20 1 mongostat -n=20
在下一个示例中,只要程序运行,mongostat
就会每 5 分钟(或 300 秒)返回一次数据。mongostat
从端口 27017
上的本地主机接口运行的 mongod
实例收集数据。以下调用都会产生相同的行为:
mongostat --rowcount=0 300 mongostat -n=0 300 mongostat 300
在以下示例中, mongostat
每隔5分钟返回一次数据,并持续一小时( 12次)。 mongostat
从运行在端口27017上的本地主机接口上的mongod
实例收集数据。 以下调用会产生相同的行为:
mongostat --rowcount=12 300 mongostat -n=12 300
向mongostat
输出添加字段
-O
允许您指定serverStatus
输出中的字段以添加到默认的mongostat
输出。 如果您的自定义字段名称中包含空格,请勿在字段名称两边添加额外引号。
以下示例将向默认 mongostat
输出添加字段:
mongostat -O='host,version,network.numRequests=network requests'
mongostat
输出类似于
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time host version network requests *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 158b 39.4k 2 Oct 11 12:14:45.878 localhost:37017 3.3.14 91 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.3k 2 Oct 11 12:14:46.879 localhost:37017 3.3.14 95 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.2k 2 Oct 11 12:14:47.884 localhost:37017 3.3.14 99
以下字段将被添加到默认输出中:
network.numRequests
字段采用自定义字段名称“network requests”(网络请求)。
指定mongostat
输出字段
-o
指定 mongostat
在其输出中包含的列。可以指定任何 serverStatus
字段作为 mongostat
输出列。
以下示例使用了 mongostat
的自定义字段:
mongostat --port 27500 -o='host,opcounters.insert.rate()=Insert Rate,opcounters.query.rate()=Query Rate,opcounters.command.rate()=Command Rate,wiredTiger.cache.pages requested from the cache=Pages Req,metrics.document.inserted=inserted rate'
mongostat
输出类似于
host Insert Rate Query Rate Command Rate Pages Req Inserted Rate localhost:27500 180 1 8 2999446 9638 localhost:27500 40 3 12 2999601 9678 localhost:27500 181 2 9 3000207 9859 localhost:27500 39 2 12 3000362 9899 localhost:27500 181 2 11 3000969 10080 localhost:27500 39 2 10 3001124 10120
计数器和相应的自定义字段名称为:
计数器 | 自定义字段名称 |
---|---|
opcounters.insert.rate | 插入速率 |
opcounters.query.rate | 查询率 |
opcounters.command.rate | 命令速率 |
从缓存请求的 wiredTiger.cache.pages | 页面要求 |
metrics.document.inserted | 插入速率 |
查看字段的更改率 .rate()
.rate()
使您能够查看数字字段从一次 mongostat
调用到下一次调用的每秒更改率。例如,您可以查看在插入操作过程中插入文档的速度。因此,.rate()
有助于您查看 mongod
实例的性能。
以下示例报告metrics.document.inserted
serverStatus
字段的变更率。 此调用使用-o
的指定列名称的能力,将metrics.document.inserted.rate()
标记为“inserted rate”(插入率),将metrics.document.inserted
标记为“inserted”(已插入):
mongostat -o='host,mem,bits,metrics.document.inserted.rate()=inserted rate,metrics.document.inserted=inserted' --rowcount=5
而输出将类似如下所示:
host mem.bits inserted rate inserted localhost:37017 64 501 3455 localhost:37017 64 967 13128 localhost:37017 64 972 22851 localhost:37017 64 214 25000 localhost:37017 64 0 25000
使用以下选项查看字段更改 .diff()
.diff()
返回当前serverStatus
字段值与上一次mongostat
调用的值之间的差值。 以下示例返回正在插入集合中的文档数量的统计信息: inserted
diff
是后续调用之间metrics.document.inserted
字段中的差值,而inserted
是metrics.document.inserted
的值:
mongostat -o='host,mem.bits,metrics.document.inserted.diff()=inserted diff,metrics.document.inserted=inserted' --rowcount=5
而输出将类似如下所示:
host mem.bits inserted diff inserted localhost:27017 64 0 25359 localhost:27017 64 94 25453 localhost:27017 64 938 26391 localhost:27017 64 964 27355 localhost:27017 64 978 28333
查看副本集或分片集群的统计信息
在许多情况下,使用--discover
选项将有助于提供整群组机器的更完整的状态快照。 如果连接到分mongos
分片集群 的 进程正在本地计算机的端口27017
上运行,则可以使用以下形式返回集群所有成员的统计信息:
mongostat --discover
在互动界面中查看统计信息
使用--interactive
选项查看非滚动 ncurses 中的统计信息 -风格的交互式输出。--interactive
选项允许您突出显示要查看的特定主机、列或字段。 与--discover
结合使用时, --interactive
会显示副本集或分片集群的所有节点的统计信息,如以下示例所示:
mongostat --discover --interactive
然后,分片集群的输出将类似于:
host insert query update delete getmore command dirty used flushes mapped vsize res faults qrw arw net_in net_out conn set repl time hostname.local:27018 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 3.25G 25.0M n/a 0|0 1|0 157b 43.9k 19 tic PRI Nov 2 11:44:46.439 hostname.local:27019 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439 hostname.local:27020 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439 hostname.local:27021 2017 *0 *0 *0 826 1029|0 0.0% 0.0% 0 3.25G 31.0M n/a 0|0 1|0 1.74m 1.60m 20 tac PRI Nov 2 11:44:46.439 hostname.local:27022 *2021 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.19G 32.0M n/a 0|0 1|0 322b 44.6k 12 tac SEC Nov 2 11:44:46.438 hostname.local:27023 *2022 *0 *0 *0 0 3|0 0.0% 0.0% 0 3.19G 33.0M n/a 0|0 1|0 323b 44.7k 12 tac SEC Nov 2 11:44:46.438 localhost:27017 2071 *0 *0 *0 0 2073|0 0 0B 2.43G 9.00M 0 0|0 0|0 249k 130k 4 RTR Nov 2 11:44:47.429 Press '?' to toggle help
使用 AWS IAM 档案连接到 MongoDB Atlas 集群
100.1.0 版本新增。
要连接到已配置为支持通过 AWS IAM 凭证 进行身份验证的 MongoDB Atlas 集群,请提供类似于以下内容的connection string
以mongostat
:
mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
以这种方式使用 AWS IAM 凭证连接 Atlas 时,会使用 MONGODB-AWS
authentication mechanism
和 $external
authSource
,如本示例所示。
如果还使用 AWS 会话令牌,请为其提供 AWS_SESSION_TOKEN
authMechanismProperties
值,如下所示:
mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>
注意
或者,可以使用 --username
、--password
和 --awsSessionToken
选项在连接字符串外部提供 AWS 访问密钥 ID、私有访问密钥和可选会话令牌,如下所示:
mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>
当作为命令行参数提供时,这三个选项无需进行百分号编码。
还可以使用标准 AWS IAM 环境变量在平台上设置这些凭证。mongostat
在使用 MONGODB-AWS
authentication mechanism
时会检查以下环境变量:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
如果设置,则无需在连接字符串中或通过其显式选项指定这些档案。
注意
如果选择使用 AWS 环境变量来指定这些值,则无法与这些凭证的相应显式选项或连接字符串选项进行混合和匹配。使用针对访问密钥 ID和秘密访问密钥(以及会话令牌,如果已使用)的环境变量,或是使用显式或连接字符串选项来指定其中每一个档案。
以下示例会在 bash
Shell 中设置这些环境变量:
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
在其他Shell中设置环境变量的事务语法会有所不同。有关更多信息,请参阅适用于您的平台的文档。
您可以使用以下命令验证这些环境变量是否已设置:
env | grep AWS
一旦制定,以下示例将使用这些环境变量连接到 MongoDB Atlas 集群:
mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>