Логирование медленных запросов
Все логи который больше 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.При запуске мы указываем параметром с каким диапазоном времени делать просмотр процессов в запащенном монгод.
Комментариев нет:
Отправить комментарий