DBAtlas · Атлас эксплуатации баз данных

Измерение давления на кэш WiredTiger (заполнение, доля грязных данных, вытеснение потоками приложения)

MongoDBПроизводительность

Команда

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

Что делает

Показывает размер кэша WiredTiger, процент заполнения и грязных данных, сколько страниц были вынуждены вытеснить потоки приложения, и состояние тикетов чтения/записи.

Когда использовать

Когда растут чтения с диска, внезапно скачет задержка или падает пропускная способность записи; при определении размера кэша.

Внимание

Когда заполнение превышает 80% (eviction_target), начинается фоновое вытеснение; при 95% (eviction_trigger) в вытеснении участвуют и потоки приложения, и запросы замедляются. Для грязных данных 5% — цель, 20% — триггер; постоянное значение около 20% означает нехватку производительности записи на диск. Растущий счётчик pages evicted by application threads — это задержка, которую пользователи ощущают напрямую. Значения — накопительные счётчики; смотрите на разницу между двумя замерами.

Открыть в DBAtlas →

Связанные материалы