[mongodb] 모니터링하기
mongodb모니터링하기
1. mongotop
read/write/total i/o 정보를 보여준다.
http://docs.mongodb.org/manual/reference/program/mongotop/#bin.mongotop
특정 콜렉션의 성능이 떨어지는 것을 눈으로 확인할 수 있다.
$ mongotop
ns total read write 2015-10-12T19:31:39+09:00
abc.times 528ms 222ms 306ms
abc.vips 8ms 8ms 0ms
local.oplog.rs 2ms 2ms 0ms
특정 콜렉션이 느려져서 색인이 안되었있는 것을 확인했고 색인을 추가했다.
> db.realtimes.createIndex( { 'profileId': 1 }, { background: true } )
백그라운드로 색인 작업하도록 했고, 10초안으로 색인이 완료되었고, 5ms이하로 read/write io가 떨어졌다.
30초에 한 번씩 출력하고 싶다면 매개변수를 30을 추가한다. 누적으로 보여주기 때문에, 유용하다.
$ mongotop 30
어느 db의 lock의 상황이 안 좋은지를 확인할 수 있다.
$ mongotop --locks
2015-10-12T20:03:16.773+0900 connected to: 127.0.0.1
db total read write 2015-10-12T20:03:17+09:00
Collection 0ms 0ms 0ms
Database 0ms 0ms 0ms
Global 0ms 0ms 0ms
Metadata 0ms 0ms 0ms
oplog 0ms 0ms 0ms
2. mongostat
1초에 한번씩 mongod, mongos 성능을 측정한다.
http://docs.mongodb.org/manual/reference/program/mongostat/
$ mongostat
insert query update delete getmore command % dirty % used flushes vsize res qr|qw ar|aw netIn netOut conn set repl time
1 25 15 *0 56 19|0 0.5 3.8 0 1.1G 383.0M 0|0 1|1 19k 49k 44 replset PRI 19:30:29
*0 27 14 *0 63 32|0 0.5 3.8 0 1.1G 383.0M 0|0 1|1 21k 55k 44 replset PRI 19:30:30
*0 27 14 *0 63 25|0 0.5 3.8 0 1.1G 383.0M 0|0 1|0 21k 54k 44 replset PRI 19:30:31
30 초에 한번씩 mongo stat 정보를 보고 싶다면, 다음을 실행한다.
$ mongostat 30
sar 명령어와 비슷하게 주기와 개수를 넣을 수 있다. 1초 동안 체크하고 20번 출력 후 종료하고 싶다면 다음을 실행한다.
$ mongostat --rowcount 20 1
$ mongostat -n 20 1