Инструменты для анализа производительности
Встроенные утилиты диагностики
В MongoDB есть утилиты получения данных о производительности:
- mongostat
— собирает статистику утилизации ресурсов CPU и памяти процессами MongoDB, - mongotop
— собирает статистику чтения/записи данных по каждой коллекции.
При вызове этих утилит используйте строку подключения с логином и паролем пользователя с ролью mdbMonitor
, например:
mongostat 5 --uri="mongodb://{<имя_пользователя_с_ролью_mdbMonitor>}:{<пароль>}@{<хост>}:27018/?authSource=admin"
mongotop 5 --uri="mongodb://{<имя_пользователя_с_ролью_mdbMonitor>}:{<пароль>}@{<хост>}:27018/?authSource=admin"
Здесь обе утилиты выводят набор данных о производительности с интервалом опроса (polling interval) в 5 секунд.
Подробнее об использовании утилит monostat
и mongotop
см. в документации MongoDB
Профилировщик
В MongoDB есть встроенный профилировщик
Важно
Использование значения all
для настройки operationProfiling.mode
и близкого к 0
значения для настройки operationProfiling.slowOpThreshold
значительно снижает производительность кластера.
Чтобы просмотреть данные, собранные профилировщиком, обратитесь к коллекции system.profile
в каждой БД. Коллекции профилировщика доступны для чтения пользователю с ролью mdbMonitor
. По умолчанию данные дублируются в логах.
Подробнее о настройке профилировщика и о том, как интерпретировать его результаты, читайте в документации MongoDB
Выполняемые в данный момент запросы
Чтобы посмотреть не относящиеся к текущему пользователю запросы, от имени пользователя с ролью mdbMonitor
выполните запрос db.currentOp()
db.currentOp()
Чтобы посмотреть запросы текущего пользователя, выполните запрос db.currentOp()
со значением true
для настройкиownOps
:
db.currentOp({ "$ownOps": true })
Логи
Наиболее подробная информация о работе MongoDB содержится в логах.
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - Нажмите на имя нужного кластера и выберите вкладку
Логи.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы посмотреть логи Managed Service for MongoDB:
-
Посмотрите описание команды CLI для просмотра логов:
yc managed-mongodb cluster list-logs --help
-
Для получения всех логов кластера выполните команду:
yc managed-mongodb cluster list-logs --id <идентификатор_кластера>
Идентификатор кластера можно получить со списком кластеров в каталоге.
Чтобы посмотреть логи, воспользуйтесь методом REST API listLogs для ресурса Cluster или вызовом gRPC API ClusterService/ListLogs и передайте в запросе идентификатор кластера в параметре clusterId
.
Идентификатор кластера можно получить со списком кластеров в каталоге.