DBAtlas · Atlas für Datenbankbetrieb

Druck auf den WiredTiger-Cache messen (Füllgrad, Dirty-Anteil, Eviction durch Anwendungs-Threads)

MongoDBPerformance

Befehl

const c = db.serverStatus().wiredTiger.cache;
const max = c["maximum bytes configured"];
({
  maxGB: (max / 1024 ** 3).toFixed(1),
  usedPct: (100 * c["bytes currently in the cache"] / max).toFixed(1),
  dirtyPct: (100 * c["tracked dirty bytes in the cache"] / max).toFixed(1),
  appThreadEvictedPages: c["pages evicted by application threads"],
  pagesReadIntoCache: c["pages read into cache"]
})
// Read/write ticket usage and queue:
db.serverStatus().wiredTiger.concurrentTransactions

Was es tut

Zeigt Größe des WiredTiger-Caches, Füllgrad und Dirty-Anteil in Prozent, wie viele Seiten Anwendungs-Threads zwangsweise verdrängen mussten, und den Status der Lese-/Schreib-Tickets.

Wann einsetzen

Wenn Plattenlesevorgänge zunehmen, die Latenz plötzlich ansteigt oder der Schreibdurchsatz sinkt; beim Dimensionieren des Caches.

Vorsicht

Überschreitet der Füllgrad 80% (eviction_target), beginnt die Eviction im Hintergrund; bei 95% (eviction_trigger) beteiligen sich auch Anwendungs-Threads an der Eviction und Abfragen werden langsamer. Für Dirty-Daten sind 5% das Ziel und 20% der Auslöser; ständig nahe 20% bedeutet, dass die Schreibkapazität der Platte nicht ausreicht. Ein wachsender Zähler pages evicted by application threads ist Latenz, die Benutzer direkt spüren. Die Werte sind kumulative Zähler; betrachte die Differenz zwischen zwei Messungen.

In DBAtlas öffnen →

Verwandte Einträge