DBAtlas · Atlas d'exploitation des bases de données

Mesurer la pression sur le cache WiredTiger (remplissage, taux de pages sales, éviction par l'application)

MongoDBPerformances

Commande

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

Ce que fait la commande

Affiche la taille du cache WiredTiger, ses pourcentages de remplissage et de pages sales, le nombre de pages que les threads applicatifs ont été contraints d'évincer, et l'état des tickets de lecture/écriture.

Quand l'utiliser

Quand les lectures disque augmentent, que la latence grimpe soudainement ou que le débit d'écriture chute ; lors du dimensionnement du cache.

Attention

Dès que le remplissage dépasse 80 % (eviction_target), l'éviction en arrière-plan démarre ; à 95 % (eviction_trigger), les threads applicatifs participent aussi à l'éviction et les requêtes ralentissent. Pour les données sales, 5 % est la cible et 20 % le déclencheur ; être constamment proche de 20 % signifie que la capacité d'écriture disque est insuffisante. Un compteur pages evicted by application threads qui augmente correspond à une latence ressentie directement par les utilisateurs. Les valeurs sont des compteurs cumulés ; regardez la différence entre deux échantillons.

Ouvrir dans DBAtlas →

Voir aussi