mongotop跟踪Mongodb集合读取和写入数据

mongotop是MongoDB的一个实用工具,从4.4版开始独立于服务器发布,用于监控数据库的读写活动。它支持MongoDB6.0、5.0、4.4和4.2版本。mongotop使用top命令收集数据,并在每个轮询间隔重置统计信息。用户需要有serverStatus和top权限,如clusterMonitor角色。可以通过--uri或单独的--host和--port选项连接到MongoDB服务器,但应注意在命令行中直接提供密码可能不安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本控制

从 MongoDB 4.4 开始,MongoDB 数据库工具现在与 MongoDB 服务器分开发布,并使用自己的版本控制,初始版本为100.0.0. 此前,这些工具与 MongoDB 服务器一起发布,并使用匹配的版本控制。

兼容性

mongotop 版本100.7.3支持以下版本的 MongoDB Server:

MongoDB 6.0

MongoDB 5.0

MongoDB 4.4

MongoDB 4.2

行为

  • mongotop 程序使用 top 收集数据的命令。 top 返回累积使用统计信息,mongotop 重置每个轮询间隔的使用统计信息。
  • 当指定副本集列表格式时,mongotop 总是连接到主服务器。
  • 如果连接到一个副本集,而主副本集不可达,则montop返回一个错误消息。

示例

要连接 mongotop 到一个 mongod , 请在系统命令行执行,不是通过 mongo shell 。 如下:

  • 实例在远程主机上运行并每 5 秒报告一次。
  • –uri: 指定主机和端口的选项。
  • 运行 mongotop 的用户必须有 serverStatus 和 top 特权。内置角色 clusterMonitor 提供这些特权。
sit_rs1:PRIMARY> db.getRole("clusterMonitor", { showPrivileges: true }).privileges[0]
{
       "resource" : {
               "cluster" : true
       },
       "actions" : [
               "checkFreeMonitoringStatus",
               "connPoolStats",
               "getDefaultRWConcern",
               "getCmdLineOpts",
               "getLog",
               "getParameter",
               "getShardMap",
               "hostInfo",
               "inprog",
               "listDatabases",
               "listSessions",
               "listShards",
               "netstat",
               "replSetGetConfig",
               "replSetGetStatus",
               "serverStatus",                #  ------>  serverStatus  特权  
               "shardingState",
               "top",                         #  ----->   top 特权
               "useUUID"
       ]
}

连接单台服务器:

  • –uri=<connectionString> 指定可解析的 URI 连接字符串 MongoDB 部署的信息,用引号引起来:
root@ubuntu-x64_01:/opt# mongotop 5 --uri='mongodb://admin:******@192.168.88.11:27017/admin?authSource=admin&ssl=false'
2023-07-28T09:53:15.273+0800    WARNING: On some systems, a password provided directly in a connection string or using --uri may be visible to system status programs such as `ps` that may be invoked by other users. Consider omitting the password to provide it via stdin, or using the --config option to specify a configuration file with the password.
2023-07-28T09:53:15.292+0800    connected to: mongodb://[**REDACTED**]@192.168.88.11:27017/admin?authSource=admin&ssl=false

                    ns    total    read    write    2023-07-28T09:53:20+08:00
        local.oplog.rs      8ms     8ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms                             

                    ns    total    read    write    2023-07-28T09:53:25+08:00
        local.oplog.rs     10ms    10ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms                             

                    ns    total    read    write    2023-07-28T09:53:30+08:00
        local.oplog.rs      9ms     9ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms  
  • 100.0从版本开始 mongotop连接字符串也可以作为位置参数提供,而不使用 --uri, 作为位置参数,可以在命令行上的任何点指定连接字符串,只要它以 mongodb:/ / 或 mongodb+srv:// 开头。例如:
root@ubuntu-x64_01:/opt# mongotop 5 --username admin --password ****** --authenticationDatabase=admin mongodb://192.168.88.11:27017 
2023-07-28T10:06:31.684+0800    WARNING: On some systems, a password provided directly using --password may be visible to system status programs such as `ps` that may be invoked by other users. Consider omitting the password to provide it via stdin, or using the --config option to specify a configuration file with the password.
2023-07-28T10:06:31.702+0800    connected to: mongodb://192.168.88.11:27017

                    ns    total    read    write    2023-07-28T10:06:36+08:00
        local.oplog.rs     16ms    16ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms                             

                    ns    total    read    write    2023-07-28T10:06:41+08:00
        local.oplog.rs     12ms    12ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms                             

                    ns    total    read    write    2023-07-28T10:06:46+08:00
        local.oplog.rs     12ms    12ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms  
  • 或者,您可以使用 --host 和 --port 指定主机和端口的选项:如果 mongod 实例需要认证,可以指定用户 -u,以及认证数据库 --authenticationDatabase。如果省略 --password 选项会提示输入密码。
root@ubuntu-x64_01:/opt# mongotop 5 --username=admin --password=****** --authenticationDatabase=admin --host=192.168.88.11 --port=27017 
2023-07-28T10:20:34.908+0800    WARNING: On some systems, a password provided directly using --password may be visible to system status programs such as `ps` that may be invoked by other users. Consider omitting the password to provide it via stdin, or using the --config option to specify a configuration file with the password.
2023-07-28T10:20:34.927+0800    connected to: mongodb://192.168.88.11:27017/

                    ns    total    read    write    2023-07-28T10:20:39+08:00
        local.oplog.rs     12ms    12ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms                             

                    ns    total    read    write    2023-07-28T10:20:44+08:00
        local.oplog.rs     14ms    14ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms                             

                    ns    total    read    write    2023-07-28T10:20:49+08:00
        local.oplog.rs      9ms     9ms      0ms                             
     admin.system.keys      0ms     0ms      0ms                             
    admin.system.roles      0ms     0ms      0ms                             
    admin.system.users      0ms     0ms      0ms                             
  admin.system.version      0ms     0ms      0ms                             
       config.settings      0ms     0ms      0ms                             
config.system.sessions      0ms     0ms      0ms                             
   config.transactions      0ms     0ms      0ms                             
local.replset.election      0ms     0ms      0ms                             
  local.system.replset      0ms     0ms      0ms   

Fields

mongotop 返回以毫秒 (ms.) 为单位指定的时间值, mongotop 仅报告活动的命名空间或数据库。如果您没有看到数据库或集合,则表明它最近没有收到任何活动。

字段描述
mongotop.ns包含数据库名称空间,它组合了数据库名称和集合。
mongotop.db包含数据库的名称。以“.”命名的数据库是指全局锁,而不是特定的数据库。该字段不会出现,除非您使用 --locks 选项调用了montop。–locks 在mongod 3.0或更新版本的实例上调用时,如果没有报告每个数据库的锁使用情况,则返回错误。
mongotop.total提供此mongod在此名称空间上操作所花费的总时间。
mongotop.read提供此mongod在此名称空间上执行读操作所花费的时间。
mongotop.write提供此mongod在此名称空间上执行写操作所花费的时间。
mongotop.<timestamp>为返回的数据提供时间戳。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ethanchen's notes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值