
MaxGaugeではじめるパフォーマンス管理 ~第2回:MaxGaugeのアーキテクチャ~
こんにちは、MaxGaugeの製品担当です。
このブログでは、自社製品である データベース・パフォーマンス・マネージメント・ツール「MaxGauge for Oracle」について、現場で本当に役立つパフォーマンス管理の考え方と活用法をわかりやすく解説していきます。
MaxGauge for Oracle のアーキテクチャについて紹介します、今回は、低負荷で多くの稼働データを収集する仕組みと、その収集対象について解説します。
目次[非表示]
- 1.MaxGaugeのコンセプト
- 2.システム構成
- 3.データ収集方法
- 3.1.ダイレクトメモリアクセス
- 3.2.SQL
- 4.MaxGaugeによるデータ収集による負荷
- 5.対応するOracleデータベース
- 6.今回のまとめ
MaxGaugeのコンセプト
OracleデータベースのツールとしてMaxGaugeが作られた経緯について紹介します。
Oracleデータベースのコンサルティング業務において、トラブル調査や稼働状況の把握を効率的に行うために、以下のようなコンセプトのもとでツールを開発しました:
- データベースの稼働状況を把握するための詳細なデータを収集すること
- 詳細なデータを収集しながらも、データベース本体への負荷は最小限に抑えること
- 収集したデータを誰でも簡単に分析できるインターフェースを備えること
さらに、現場やお客様の声を反映しながら必要な機能を追加していくことで、このツールはMaxGaugeへと進化しました。
MaxGaugeは、データベース管理者やシステム管理者の視点から「本当に必要な情報や機能とは何か?」を追求して作られたツールです。
システム構成
MaxGaugeのシステム構成について説明します。
MaxGaugeは次の図の構成になりMaxGaugeの管理サーバと監視対象データベースにエージェントを設置します。
- 監視対象のデータベースサーバにMaxGaugeのエージェントを設置します
エージェントが収集したデータはMaxGauge Server(管理サーバ)に保存します。
保存されたデータはClient(PC)のブラウザからMaxGaugeのWEB画面にアクセスしてデータを閲覧します。
データ収集方法
MaxGaugeは監視対象データベースから「ダイレクトメモリアクセス」と「SQL」による2種類の方法でデータを取得します。
ダイレクトメモリアクセス
MaxGaugeが取得する主要なデータはダイレクトメモリアクセス(DMA)によって収集します。具体的に説明しますとMaxGaugeエージェントはOracleの共有メモリに直接アクセスしてOracleの稼働情報を取得します、この方法のメリットはOracleプロセスに負荷を掛けず稼働情報を取得することが出来ます。データベースの分析に重要情報はDMAにより低負荷かつ短い間隔での収集を実現しています。
DMAで収集する稼働情報の一覧
稼働情報 |
収集間隔 |
説明 |
---|---|---|
セッション情報 |
1秒間隔 |
セッションのステータスがアクティブのセッションの情報を収集します |
SQL情報 |
0.05秒間隔 |
実行中のSQLの情報を取得します。収集したSQLの情報は10分間隔で集計されます |
システム統計情報 |
1分間隔 |
全てのシステム統計情報を1秒間隔で収集して1分間の最大値と平均値に集計します |
待機イベント情報 |
1分間隔 |
全ての待機イベント情報を1分間隔で発生回数と待機時間を収集します |
SQL
MaxGaugeが取得する稼働情報で収集頻度が低くても分析に影響しないデータはSQLを実行して取得しています。SQL実行による監視対象データベースへの負荷を極力少なくするため収集間隔は長く、負荷の掛からないSQL文の実行で稼働情報を取得します。
SQLで収集する稼働情報の一覧
稼働データ |
収集間隔 |
説明 |
実行計画 |
10分間隔 |
MaxGaugeが収集したSQL情報の実行計画をV$PLANより取得します。 |
BIND値 |
10分間隔 |
MaxGaugeが収集したSQL情報で使用されたBIND値を取得します。V$SQL_BIND_CAPTUREから取得します。 |
セグメント使用率 |
1日1回 |
セグメントに割り当てられた領域の使用状況を取得します。 |
パラメータ情報 |
1日1回 |
インスタンスのパラメータの情報を取得します。 |
ブロッキングセッション情報 |
10分間隔 |
参考情報としてV$ACTIVE_SESSION_HISTORYよりブロッキングセッションの情報を取得します。(情報の取得には Oracle Diagnostics Pack のライセンスが必要です) |
パッケージ・プロシージャ情報 |
1日1回 |
データベースに登録されているパッケージ・プロシージャの情報を取得します。PL/SQL分析の画面で利用します。 |
MaxGaugeによるデータ収集による負荷
お客様からよくいただくご質問になりますが
💬 「1秒間隔とかで情報取得するけどデータベースへの負荷が心配です、大丈夫ですか?」
💬 「本番環境で本当に動かしても大丈夫なんですか?」
などデータベースへの負荷や影響に関するご質問をいただくことが多いですが
🗨️ 「はい、ご安心ください。実際の運用環境でも問題なくご利用いただけます。」
と自信をもってお答えしております。
具体的な数字で負荷を説明しますとMaxGaugeによる監視対象データベースへの負荷は
CPU使用率で約1%以下
のケースが多く、メモリやデータベースへの影響はありません。また、ミッションクリティカルなシステムへの導入実績も豊富で、実際に多くの本番環境でMaxGaugeが活用されています。
対応するOracleデータベース
MaxGaugeが対応するOracleデータベースはOracle Database 10gR1 ~ Oracle Database 21c まで対応しております。各バージョンのエディションによる制約などはなく動作します。
Oracle Database 10g のように古い環境やSE、SE2 などEnterprise EditionのオプションであるOracle Diagnostics Packを使用できない環境でもMaxGaugeは動作します。
※ 対応するデータベースは、2025年6月時点での情報です、詳細は こちら からお問合せください
今回のまとめ
今回は、MaxGauge for Oracle の概要とアーキテクチャを中心に、ツールの基本的な特徴をご紹介しました。MaxGaugeは、Oracle Database の内部動作を高精度に可視化し、トラブル対応や運用改善に必要な情報を、迅速かつ正確に把握・分析できる環境を提供します。 特に、独自のDMA(データ収集エージェント)によって、分析に必要な高解像度データを低負荷で収集できる点が大きな特長です。データの解像度はそのまま分析の精度に直結します。MaxGauge は、こうした分析の“質”を支えるための情報を揃えており、日々の運用を支える強力なツールとして活用いただけます。
次回は、実際の画面や活用シーンを通じて、より具体的にMaxGaugeの魅力をご紹介します。