我正在使用 mongostat
和 mongotop
对 MongoDB 进行性能分析。
我运行了 mongotop:
$> mongotop 30
而mongostat只是:
$> mongostat
输出结果为:
Mongotop:
ns total read write 2012-11-23T01:32:37
sapi.Socket 1222ms 1222ms 0ms
sapi.ChargeSpot 999ms 999ms 0ms
Mongostat:
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn set repl time
0 5351 0 0 0 1 0 608m 3.67g 64m 0 sapi:0.0% 0 0|0 1|0 569k 1m 63 capi-rs PRI 12:32:41
0 4189 0 0 0 1 0 608m 3.67g 64m 0 knightsbridge:0.0% 0 0|0 0|0 499k 308k 63 capi-rs PRI 12:32:42
问题:
对于mongotop输出,因为我运行它来报告每30秒间隔,那么例如sapi.Socket总共1222ms读取的意思是:
在30秒间隔内,1222ms用于执行从集合sapi.Socket中读取查询。
这意味着在30秒内,mongo只忙于处理读取查询2,221ms(1,222ms + 999ms),换句话说,mongo在其他27秒内处于空闲状态?
- 对于mongostat输出,看起来mongo正在处理大约5K个查询/秒,这是否会让mongo有些吃力,还是mongo能够处理更多的查询?这些查询是基本的(通过索引键查找)。