воскресенье, 29 июня 2014 г.

Logging and Profiling

Логирование медленных запросов

Все логи который больше 100 мс считаются медленными и поэтому логируются монго.

Profiler

Пишутся данные в колекцию system.profile
Существуют три уровня/режима
0 -  Off
1 - Log my slow queries
2 - Log all my queries

Можно сразу запустить mongod в указанном режиме
> mongod -dbpath /usr/local/var/mongodb --profile 1 --slowms 2
Мы указали режим и что меделнными мы считаем запросы от 2-х милисекунд

И вот мы выполнили медленный запрос в базу, и так мы его найдем в наших логах:
> db.system.profile.find().pretty()

Обычно там логов много и не редко из разных баз и с разных колекций, чтобы поискать можно воспользоваться следующими командами:
> db.system.profile.find({ns:/interestedDb.interestedColl/}).sort({ts: 1}).pretty()
Так мы ищем только интересующую нас базы и колекцию в ней, и сортируем по времени их создания Или только какие-то очень медленные с любой колекции и базы:
> db.system.profile.find({millis: {$gt: 500}}).sort({ts: 1}).pretty()


Узнать поточный  режим профайлера:

> db.getProfilingLevel()
1
Узнать что у нас логируется и его дополнительный параметр(например у медленных, что считать медленным):
> db.getProfilingStatus()
{"was": 1, "slowms": 2}


Установка в уже запущенном монго:
> db.setProfilingLevel(1, 4)
{"was": 1, "slowms": 4, "ok": 1}

Mongotop

Аналог юниксового top.
При запуске мы указываем параметром с каким диапазоном времени делать просмотр процессов в запащенном монгод.

Mongostat

Аналог юниксового iostat.


Комментариев нет:

Отправить комментарий