DBAtlas · Atlas de operaciones de bases de datos

Medir la presión sobre la caché de WiredTiger (llenado, proporción sucia, eviction por la aplicación)

MongoDBRendimiento

Comando

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

Qué hace

Muestra el tamaño de la caché de WiredTiger, sus porcentajes de llenado y de datos sucios, cuántas páginas se vieron obligados a desalojar los hilos de la aplicación y el estado de los tickets de lectura/escritura.

Cuándo usarlo

Cuando aumentan las lecturas de disco, la latencia se dispara de repente o cae el throughput de escritura; al dimensionar la caché.

Precaución

Cuando el llenado supera el 80% (eviction_target) empieza la eviction en segundo plano; al 95% (eviction_trigger) los hilos de la aplicación también participan en la eviction y las consultas se ralentizan. Para los datos sucios, el 5% es el objetivo y el 20% el disparador; estar constantemente cerca del 20% significa que la capacidad de escritura en disco es insuficiente. Un contador pages evicted by application threads en aumento es latencia que perciben directamente los usuarios. Los valores son contadores acumulados; mire la diferencia entre dos muestras.

Abrir en DBAtlas →

Relacionado