簡體   English   中英

解釋Mongostat和Mongotop輸出

[英]Interpreting Mongostat and Mongotop output

我正在使用mongostatmongotop對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秒的時間間隔內,從集合sapi.Socket執行讀取查詢花費了1222ms

    這意味着在30秒內,mongo只忙於2,221ms(1,222ms + 999ms)處理讀取查詢,換句話說,mongo在其他27秒內空閑?

  • 對於mongostat輸出,看起來mongo每秒處理大約5K個查詢,這是推動mongo一點還是mongo能夠更多? 查詢是基本的(通過索引鍵查找)

每秒所有操作度量標准將是每個特定服務器配置和群集體系結構的相對度量標准。 但是你沒有用5k查詢推送Mongo。

一個免費的工具是DB分析器。 在這種情況下,探查器將捕獲名為system.profile的系統集合中的所有操作。 然后,您可以對單個查詢以及它們的執行方式進行更深入的了解。

//僅針對名為dfl的// DB和名為test的集合進行查詢操作的診斷示例,而不是插入或刪除或命令。

db.system.profile.find({op:{$ eq:'query'},ns:'dfl.test'})

//檢查你的探查器狀態db.getProfilingStatus()

//將探查器設置為所有操作db.setProfilingLevel(2)

對於性能調優,我們已經看到了explainhintprofile選項。 但是,如果我們想要了解一個程序中的高級別並找出它花費時間的位置,那我們該怎么做呢? 我們有Mongotop ,以Unix命令top命名。 要查看shell上的日志,請使用命令mongotop seconds - 其中seconds是打印下一個日志條目的秒數。

例如: mongotop 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM