DBAtlas · データベース運用アトラス

WiredTiger キャッシュの負荷を測定する (使用率、ダーティ率、アプリケーションによる eviction)

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 キャッシュのサイズ、その使用率とダーティ率、アプリケーションスレッドが強制的に追い出した (evict) ページ数、読み取り / 書き込みチケットの状態を表示する。

使用する場面

ディスク読み取りが増加した場合、レイテンシが急上昇した場合、書き込みスループットが低下した場合、またはキャッシュのサイジング時に。

注意

使用率が 80% (eviction_target) を超えるとバックグラウンドの eviction が始まる。95% (eviction_trigger) ではアプリケーションスレッドも eviction に参加し、クエリが遅くなる。ダーティデータでは 5% が目標、20% がトリガーである。常に 20% 付近にある場合は、ディスクの書き込み能力が不足している。pages evicted by application threads カウンターの増加は、ユーザーが直接感じるレイテンシである。値は累積カウンターのため、2 つのサンプル間の差を確認する。

DBAtlas で開く →

関連項目