DBAtlas · Атлас эксплуатации баз данных

24 LockTimeout: Operation exceeded time limit waiting for a lock

MongoDB

Что это значит?

Операция превысила лимит времени при ожидании необходимой блокировки (например, на уровне базы данных/коллекции) и была прервана. Блокировку не удалось получить вовремя.

Почему возникает?

Долгая операция или команда DDL (например, конфликтующие административные операции над коллекцией) удерживает необходимую блокировку; интенсивная параллельная запись; либо операция, ограниченная maxTimeMS, истекает при ожидании блокировки. Встречается при конфликтующих операциях с индексами/коллекциями.

Как исправить

Найдите операцию, удерживающую блокировку: изучите активные и ожидающие операции с помощью db.currentOp(); при необходимости завершите её с помощью db.killOp(). Перенесите конфликтующие административные команды (построение индексов, collMod, compact) на часы низкой нагрузки. Делайте операции короткими и избегайте неоправданно длинных транзакций. При необходимости настройте maxTimeMS под нагрузку.

Открыть в DBAtlas →

Ещё по этой СУБД