2012-11-23 1 views
5
내가 mongostat

통역 Mongostat 및 Mongotop 출력

mongotop를 사용하여 MongoDB에 대한 몇 가지 프로파일 링을하고 있어요

나는 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초 간격에 대한 보고서를 실행하기 때문에, 예를 들어, 수행 1222ms의 sapi.Socket 합계는 평균 판독 : 30 초 간격

    은 1222ms를 수집 sapi.Socket에서 쿼리를 판독 실행 소요되는 30 초, 몽고 만 바쁜 것을 의미

    2,221ms (1,222ms + 999ms) 동안 읽기 쿼리를 처리합니다. 즉, mongo가 다른 27 초 동안 유휴 상태였습니까?

  • mongostat 출력의 경우 mongo가 약 5K 쿼리를 처리하고있는 것 같습니다. 초당,이 mongo를 조금 밀어 붙이거나 mongo를 많이 수행 할 수 있습니까? more? 쿼리는 기본입니다 (인덱싱 된 키를 사용하여 검색).
+1

전혀이 몽고 인스턴스를 밀어되지 않습니다 mongostat를 찾고 있습니다. 다른 서버 또는 다른 데이터를 사용하는 경우 제한이 매우 다를 수 있습니다. –

+0

내 해석이 맞습니까? 그 mongo는 3 초 동안 질의 중이거나 다른 27 초 동안 유휴 상태였습니까? – Dzhu

+0

@Dzhu, +1 Asya Kamsky는 다음과 같이 말했습니다. 직장에서 사용되는 Mongo 데이터베이스는 일반적으로 초당 12,000 개가 넘는 쿼리를 처리합니다. 15K 쿼리를 정기적으로 보지 않으면 걱정하지 않을 것입니다. –

답변

2

초당 작업 수는 모든 특정 서버의 구성 및 클러스터 아키텍처에 대한 상대 메트릭입니다. 그러나 5k 쿼리로 Mongo를 밀고있는 것은 아닙니다.

사용할 무료 도구는 DB 프로파일 러입니다. 프로파일 러는이 경우 모든 작업을 system.profile이라는 시스템 콜렉션으로 캡처합니다. 그런 다음 개별 쿼리에 대한 통찰력과 수행 방법을 확인할 수 있습니다.

// dfl 및 test라는 컬렉션에 대한 // 삽입 또는 삭제 또는 명령이 아닌 쿼리 작업만을위한 진단 예제 //

db.system.profile.find ({OP : {$ EQ : '쿼리'}, NS 'dfl.test'})

// 당신의 프로파일 상태 db.getProfilingStatus()

을 확인

//은 db.setProfilingLevel (2) 성능 조정에 대한

0

, 우리가 explain, hintprofile 옵션을 본 모든 작업에 프로파일을 설정합니다. 그러나 프로그램 내에서 높은 수준을보고 시간을 어디에서 소비하는지 파악하려면 어떻게해야할까요? 우리는 을 Unixtop 명령의 이름을 따서 명명했습니다.셸에서 로그를 보려면 mongotop seconds 명령을 사용하십시오. - seconds은 다음 로그 항목이 인쇄되는 시간 (초)입니다.

예컨대 : mongotop 3