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
💼 サービス: 導入支援 | 性能チューニング | 障害解析コンサルティング
답글 남기기
댓글을 달기 위해서는 로그인해야합니다.