文档菜单
文档首页
/
MongoDB数据库工具
/

mongostat 示例

在本页中

本页面展示了 mongostat 的示例。

从系统命令行运行 mongostat,而不是从 mongo 脚本。

在第一个示例中,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 允许您指定要添加到默认 mongostat 输出的 serverStatus 输出的字段。如果您在自定义字段名中包含空格,请不要在字段名周围添加额外的引号。

以下示例向默认 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 调用到下一个的变化率(每秒)。例如,您可以在插入操作期间查看文档插入的速率。因此,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 选项可以帮助提供整个机器组的更完整的状态快照。如果连接到本地机器 27017 端口的 mongos 进程正在运行,可以使用以下形式返回集群所有成员的统计信息

mongostat --discover

使用--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.

要连接到已配置为通过 MongoDB Atlas 集群,该集群支持通过 AWS IAM 凭证 进行认证,请为 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 认证机制$external 认证源,如下例所示。

如果使用 AWS 会话令牌,也提供它相应的 AWS_SESSION_TOKEN 认证机制属性 值,如下所示

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 认证机制:

  • 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>

返回

行为