モニタリング指標に関する考察(第5編:MongoDB)

MongoDBは単なるドキュメント指向データベースにとどまらず、セッションストア、ログ分析、メッセージングなど幅広い領域で利用されている。
安定運用のためには、可用性・性能・リソース・カーソル/接続・ネットワークといった領域の主要指標をバランスよく確認する必要がある。
以下は、一般的に必ずチェックすべきコア指標である。


1. 可用性指標

uptime

MongoDBプロセスが稼働している累積時間。

uptimeが長いほど安定稼働を示すが、頻繁な再起動は障害や設定問題の兆候となる。
運用中は再起動周期とログを併せて確認することが重要。


2. 性能指標

operation latency(total)

各種操作(insert, update, query, delete, commandなど)に要した平均処理時間(ms)。

低値が正常であり、急激な上昇はインデックス不足、ディスクボトルネック、ロック競合などの可能性がある。

operation throughput(rate)

1秒あたりの実行操作数(ops/sec)。

アプリケーション負荷パターンを読み取るのに有用であり、急激な変動はトラフィック異常やアプリケーションエラーの兆候である。


3. リソース指標

connections

MongoDBに接続しているクライアント数。

コネクションプールの閾値に近づくと新規接続が失敗するため、継続的な監視が必要。

memory usage(resident memory)

プロセスが占有する実メモリ量。

MongoDBはworking setをメモリに保持することで性能を確保する。
メモリ不足になるとpage faultやスワップが発生し、レイテンシが急上昇する。

WiredTiger cache

MongoDBのデフォルトストレージエンジンであるWiredTigerが内部で利用するキャッシュ。

よく利用されるデータページをメモリに保持し、ディスクアクセスを削減する。

動作フロー:
文書 → メモリキャッシュ → ディスク同期
キャッシュが満杯になると eviction が発生し、古いページをディスクに書き出して新しいデータを載せる。

キャッシュ使用率が高止まりすると eviction が増加し、ディスクI/Oが膨らんで性能低下につながる。
したがって、キャッシュ容量と使用率はMongoDB運用における最重要指標のひとつである。


4. カーソルおよびクライアント指標

active clients

現在read/write操作を実行中のクライアント数。
瞬間的な増加はバッチ処理や特定クエリの集中実行を示す。

cursors

MongoDBでクエリを実行すると、結果セットを走査するためのカーソルが作成される。

動作フロー:
クエリ実行 → カーソル生成 → クライアントがデータ取得 → すべて取得 or timeout でカーソル終了

カーソルが長時間開いたままだとメモリ・リソースを消費する。

Grafanaダッシュボードで値が常に「1」と表示されている場合:

  • 正常例:change stream、tailable cursorなど継続監視型処理
  • 異常例:通常クエリなのにcloseされない場合 → アプリケーションコードの確認が必要

要点:カーソル1個は問題ないが、「なぜ常に開いているのか」を確認する価値はある。
timeoutが増える場合、アプリケーションがデータ取得を放置している可能性がある。

カーソルは単なる数値以上に、アプリケーションのクエリパターンを診断する重要指標である。


5. ネットワーク指標

network traffic

MongoDBが送受信しているデータ量(bytes/sec)。

一定のパターンを維持するのが正常。
異常に増加する場合、レプリケーション過多、大量クエリ応答、アプリケーション暴走の可能性がある。


✔ 運用ポイントまとめ

  • Uptime → 安定稼働確認の基本指標
  • Operation Latency + Throughput → 性能ボトルネック検知の核心
  • Connections + Memory + WiredTiger Cache → 資源限界に近づいていないか
  • Cursors + Active Clients → クエリパターンとリソース浪費の検知
  • Network Traffic → データフローとトラフィック集中の把握

🛠 마지막 수정일: 2025.11.24

💡 お困りですか?
Zabbix、Kubernetes、各種オープンソースインフラの構築・運用・最適化・障害解析が必要であれば、いつでもご連絡ください。

📧 メール: jikimy75@gmail.com
💼 サービス: 導入支援 | 性能チューニング | 障害解析コンサルティング