DBAtlas · Atlas de operações de banco de dados

Medir a pressão no cache do WiredTiger (ocupação, taxa de dirty, eviction pela aplicação)

MongoDBDesempenho

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

O que faz

Mostra o tamanho do cache do WiredTiger, seus percentuais de ocupação e de dirty, quantas páginas as threads da aplicação foram forçadas a fazer eviction e o status dos tickets de leitura/escrita.

Quando usar

Quando as leituras de disco aumentam, a latência dispara de repente ou o throughput de escrita cai; ao dimensionar o cache.

Atenção

Quando a ocupação passa de 80% (eviction_target), começa o eviction em background; em 95% (eviction_trigger), as threads da aplicação também participam do eviction e as consultas ficam lentas. Para dados dirty, 5% é o alvo e 20% o gatilho; ficar constantemente perto de 20% significa que a capacidade de escrita em disco é insuficiente. Um contador pages evicted by application threads crescente é latência sentida diretamente pelos usuários. Os valores são contadores cumulativos; olhe a diferença entre duas amostras.

Abrir no DBAtlas →

Relacionados