Docs 菜单
Docs 主页
/
MongoDB 数据库工具
/

mongostat 示例

在此页面上

本页显示 mongostat 的示例。

从系统命令行运行 mongostat,而非 mongo shell。

在第一个示例中,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

-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”(网络请求)。

-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() 使您能够查看数字字段从一次 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()返回当前serverStatus字段值与上一次mongostat调用的值之间的差值。 以下示例返回正在插入集合中的文档数量的统计信息: inserted diff是后续调用之间metrics.document.inserted字段中的差值,而insertedmetrics.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

100.1.0 版本新增

要连接到已配置为支持通过 AWS IAM 凭证 进行身份验证的 MongoDB Atlas 集群,请提供类似于以下内容的connection stringmongostat

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>

注意

如果 AWS 访问密钥 ID、秘密访问密钥或会话令牌包含以下字符:

: / ? # [ ] @

这些字符必须使用百分比编码进行转换。

或者,可以使用 --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>

后退

行为