24 LockTimeout: Operation exceeded time limit waiting for a lock(ロック待機中に操作が制限時間を超えた)
MongoDB意味
操作が必要なロック (例: データベース/コレクションレベル) を待機中に制限時間を超え、中止された。ロックを時間内に取得できなかった。
原因
長時間実行の操作または DDL コマンド (例: コレクションに対する競合する管理操作) が必要なロックを保持している、高い同時書き込み、または maxTimeMS で制限された操作がロック待機中に期限切れとなった。競合するインデックス/コレクション操作で見られる。
対処方法
ロックを保持している操作を特定する: db.currentOp() でアクティブおよび待機中の操作を調べ、必要に応じて db.killOp() で終了する。競合する管理コマンド (インデックス構築、collMod、compact) はオフピーク時間帯に移す。操作を短く保ち、不必要に長いトランザクションを避ける。必要であれば maxTimeMS をワークロードに合わせて調整する。
同じデータベースの他の項目
- 10107 NotWritablePrimarynot master / not writable primary(マスターではない / 書き込み可能なプライマリではない)
- 91 ShutdownInProgressThe server is in the process of shutting down(サーバーはシャットダウン処理中)
- 189 PrimarySteppedDownPrimary stepped down while operation was in progress(操作の進行中にプライマリが stepdown した)
- 7 HostNotFoundCould not find host(ホストが見つからない)
- 175 QueryPlanKilledQuery plan killed during execution(実行中に実行計画が強制終了された)
- 11602 InterruptedDueToReplStateChangeOperation interrupted due to a replication state change(レプリケーション状態の変化により操作が中断された)
- 136 CappedPositionLostCapped collection position lost(capped コレクションの位置を喪失)