dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbooks Library/mongodb/#51
Runbook #51
mongodb
LockingSEV2 · DEGRADATION15-30 dakika / 15-30 minsclusterAdmin / dbAdminAnyDatabase / root

MongoDB Lock Queue Growth: Diagnose Waiting Operations

Distinguishes lock waits from accompanying disk or memory pressure, identifies queued operations, and guides safe workload throttling.

Related Metrics:M54
Related Scripts:S89S81
#globalLock#currentOp#waitingForLock#write-contention

Operational Safety & Risk Notice

This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.

🟢 Salt Okunur (Read-Only)·🟡 Geri Alınabilir (Reversible)·🔴 Yüksek Etkili / Geri Alınamaz (High Impact)

1. Symptom & Signals

`db.serverStatus().globalLock.currentQueue` büyüyor (M54); yazmalar ve bazen okumalar normalden yavaş. MongoDB'nin WiredTiger eşzamanlılık modelinde bu değer tek başına bloklayan tek bir oturum olduğu anlamına gelmez.

2. Business & Technical Impact

Gecikme ve zaman aşımları artar; yığılma bağlantı havuzunu ve bellek tüketimini yükseltebilir.

3. Diagnosis & Root-Cause Analysis

🟢 Read-Only1. Önceki örnekle delta/trend karşılaştırın:
javascript
const s = db.serverStatus();
({ queue: s.globalLock.currentQueue, active: s.globalLock.activeClients,
   locks: s.locks, writeConflicts: s.metrics?.operation?.writeConflicts });
🟢 Read-Only2. Bekleyen operasyonları bulun (S89):
javascript
db.getSiblingDB('admin').aggregate([
  { $currentOp: { allUsers: true, idleConnections: false } },
  { $match: { waitingForLock: true } },
  { $project: { opid: 1, op: 1, ns: 1, secs_running: 1,
                waitingForLock: 1, lockStats: 1, command: 1 } },
  { $sort: { secs_running: -1 } }
]);
🟢 Read-Only3. `currentOp` (S81) ve mongod logundan aynı zaman dilimindeki index build, toplu yazma, DDL, yavaş depolama ve replication apply etkinliğini ayırın. `globalLock.currentQueue` tek başına belirli bir kök bloklayıcıyı söylemez.

4. Remediation & Action Plan

🟡 Reversible1. Yükün kaynağı belirliyse toplu işlemi yavaşlatın; batch boyutu ve eşzamanlılığı azaltın. Koleksiyon/doküman odaklı erişimi optimize edin.
🟡 Reversible2. Disk gecikmesi veya WiredTiger eviction baskısı baskınsa `mongo-wiredtiger-cache-pressure` runbook'unu izleyin; sadece kilit ayarlarıyla uğraşmayın.
🔴 HIGH RISK / IRREVERSIBLE3. Son çare, yalnızca sahibi doğrulanmış ve güvenle yeniden denenebilir operasyonu `db.killOp(opid)` ile kesin. Kilit tutan tüm oturumları veya sunucuyu körlemesine kapatmayın.

5. Verification & Health Checks

M54 baz çizgiye dönüyor, `waitingForLock` azalıyor, uygulama p95/p99 gecikmeleri düşüyor ve yazma çakışma oranı artmıyor.

6. Rollback & Contingency Plan

Toplu iş hızını kontrollü eski düzeye çıkarın; kuyruğun yeniden büyümediğini doğrulayın. Kesilen işlemin etkisi geri alınmaz; uygulama idempotent şekilde tekrar denemeli.

More MONGODB Runbooks