Mesurer la pression sur le cache WiredTiger (remplissage, taux de pages sales, éviction par l'application)
MongoDBPerformancesCommande
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.concurrentTransactionsCe 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.
Voir aussi
- Inspecter un plan de requête avec les statistiques d'exécution réelles (explain executionStats)
- Extraire les requêtes et formes de requêtes les plus lentes depuis les données du profiler
- Trouver les index inutilisés et les masquer avant de les supprimer (hideIndex)
- Compter les connexions par application et client (diagnostic de tempête de connexions)