我想测量 Mongo 中读取操作的吞吐量。通过吞吐量,我的意思是“在给定的时间内(每秒)有多少次系统进程读取”。
我跑了mongotop 1
,我得到:
ns total read write 2018-05-21T08:01:25Z
sampledb.samplecol 57ms 25ms 32ms
local.replset.minvalid 28ms 0ms 28ms
local.oplog.rs 9ms 9ms 0ms
admin.system.indexes 0ms 0ms 0ms
admin.system.namespaces 0ms 0ms 0ms
admin.system.roles 0ms 0ms 0ms
admin.system.users 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
local.me 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
这是否意味着读操作的吞吐量是25ms?
该
mongostat
工具为您提供此信息。示例输出
mongostat
:在上面的示例中,该
query
字段的值为2
。这意味着在那个时刻,系统每秒处理两个查询。有关输出字段的完整说明
mongostat
,请参阅字段部分。根据此处的MongoDB 文档, mongotop提供了一种方法来跟踪 MongoDB 实例花费在读取和写入数据上的时间量。mongotop提供每个集合级别的统计信息。默认情况下,mongotop 每秒返回值。
从系统命令行运行mongotop ,而不是mongo shell。
默认情况下, mongotop连接到在本地主机端口 27017 上运行的 MongoDB 实例。但是,mongotop 可以选择连接到远程mongod实例。
例如,强制 mongotop 以较低的频率返回指定一个数字,在命令结束时以秒为单位。在此示例中,mongotop 将每 15 秒返回一次。
此命令产生以下输出:
mongotop.read
提供此 mongod 在此命名空间上执行读取操作所花费的时间量。
mongotop.write
提供此 mongod 在此命名空间上执行写操作所花费的时间量。
是的,在您的情况下,提供了此 mongod 在此命名空间上执行读取操作所花费的时间。