powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Поиск блокирующих запросов в Монго
15 сообщений из 15, страница 1 из 1
Поиск блокирующих запросов в Монго
    #39111346
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер,

Подскажите, пожалуйста, как искать запрос, который привел к очередям?
У меня периодически на произвольной шарде Монго 2.6, возникает очередь из нескольких сотен запросов. Очередь сама рассасывается за 1-2 часа.

Может, у кого-нибудь есть удобные скрипты? Потому что с таким количеством запросов простой db.currentOp() не слишком нагляден.
Конкретного блокирующего запроса не вижу, т.к. текущий выполняющийся запрос непрерывно меняется.

Убивание десятка самых длинных не помогает. Вручную от очереди можно избавиться через более масштабные жертвы.
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39111360
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eleanor, хм, как-то ручками писали bash скрипт, складывающий вывод db.currentOp() в лог.
Потом этот лог через mongoimport загрузил в отдельную коллекцию, проанализировал, используя aggregation framework и построил необходимые идексы.

Вы бы уточнили очередь на что у Вас? На запись, чтение? Чем смотрите, mongostat ?

А вообще есть плагин для zabbix для мониторинга .
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39111363
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И на 3.0 переходите, там collection-level locking в MMAPv1 .
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39111374
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще можно профилирование медленных запросов включить: db.setProfilingLevel() .
И получить всё тоже самое, что и при выполнение db.currentOp() только в коллеции system.profile .

Мне этого тогда не дали сделать на проде, поэтому писали bash скрипт.

Также запросы дольше 100мс должны в лог падать.
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39111376
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39111507
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Спасибо за подсказку с mongostat. С mms про него забыла.
Получилось убивать запросы по одному и смотреть на уменьшение очереди (на чтение).

Оказались виноваты несколько курсоров.

Теперь буду обновляться до 2.6.11, чтобы вместо getmore увидеть настоящий текст запроса.
На 3.0 пока не получится - переход запланирован после НГ. И 3.0 тут не поможет, все блокировки возникают на одной коллекции.
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39111703
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EleanorНа 3.0 пока не получится - переход запланирован после НГ. И 3.0 тут не поможет, все блокировки возникают на одной коллекции.Если перейдёте ещё и на WiredTiger, то получите document level concurrency control :)
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39112076
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
а вы на WT уже перешли? проблемы были?

Первый раз тестировала переход на WT почти год назад.
После 2 Тб скорость процесса конвертации упала практически до нуля, почти никаких подвижек за неделю.

Ладно, согласовали на будущее разбиение данных на маленькие базы. Стала оценивать степень сжатия на маленькой базе.
Со Snappy всё было отлично. А zlib показал, что при попытке сжатия возникло 300 тыс ошибок.
Доверия WT не вызывает.
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39112812
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eleanor, пока нет, 3.2 будем ждать :)

А вот в Parse уже перешли на MongoDB + RocksDB
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39114991
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итого:
Оказалось, столкнулась с багом https://jira.mongodb.org/browse/SERVER-13866
Запросы берут не тот индекс.
Раньше брался индекс, поиск по которому занимает 0.01 сек, а теперь тот, по которому час.
Причем, при запуске запросов вручную берется правильный индекс.
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39115084
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eleanor, в planSummary же видно какой индекс использовался. И в логе и в currentOp .

А запросы в ручную при такой же нагрузке выполнялись?
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39115085
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На тех же данных?
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39115242
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

индекс смотрела в planSummary:

периодически несколько десятков запросов вместо индекса с почти уникальным полем выбирают индекс, у которого надо проверить 10 млн записей.
Это происходит только на одной из шард. Запрос scatter/gather. Другая шарда берет уникальный индекс.

Если я сразу же вручную выполняю тот же самый запрос, то обе шарды берут корректный индекс.

Дальше несколько часов все последующие запросы выполняются на корректном индексе.
Потом опять берется не тот индекс. Причем, это может произойти уже на другой шарде.

Буду пробовать:
- явно сделать индекс уникальным... сижу удаляю дубли.
- хэшированный индекс, т.к. поисковое поле достаточно широкое
- hint на стороне клиента, чего не хотелось бы
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39120040
DrGonzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поиск блокирующих запросов в Монго
    #39123470
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге пришлось на клиенте делать постоянный hint, и, пока не прошло обновление, использовать фильтр на стороне Монго.
Хэшированный индекс, не смотря на то, что он в 2 раза меньше обычного, вообще не используется. Запросы с ним работают на несколько процентов медленнее.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Поиск блокирующих запросов в Монго
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]