Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché 履歴モニタ

Caché 履歴モニタは、パフォーマンスおよびシステム使用のメトリックの履歴データベースを保持します。その主な目的は以下のとおりです。

  • パフォーマンスの基準値を提供し、パフォーマンスの問題の分析を支援します。

  • 処理能力を計画するために、長期にわたるシステムの使用状況の分析を支援します。

このデータベースは、SYS.History クラス・パッケージで定義され、%SYS ネームスペースに保持されます。データベース構造の全詳細がそこにパブリッシュされ、データには SQL または通常の永続オブジェクト・アクセスを通してアクセスできます。SYS.History のクラス・ドキュメントにも、利用可能なすべての個々のプロパティ、メソッド、およびクエリの説明が含まれています。

データは通常、パフォーマンス ("SYS.History.PerformanceOpens in a new tab" を参照) データとシステム使用 ("SYS.History.SystemUsageOpens in a new tab" を参照) データにまとめられます。パフォーマンス・メトリックは短い間隔 (既定では 30 秒間) でサンプルが抽出され、システム使用データはこれより長い間隔 (既定では 5 分間) でサンプルが抽出されるように意図されています。毎朝、個々の間隔のサンプルが、1 時間ごとの毎時テーブルと 1 日ごとの日次テーブルに集計され、平均値、最大値、最小値、標準偏差、中央値、および合計が示されます。それぞれのメトリック・クラスについて、集計関数がある場合はどれを保持するかを選択できます。間隔ごとのデータと時間ごとのデータは、定義された日数 (既定では、それぞれ 7 日と 60 日) が過ぎたら、自動的に削除されます。毎日の集計データは、長期的な分析での使用を意図されており、手動で削除できます。

この章には、以下のセクションが含まれます。

基本メトリック

収集されるメトリックはすべて、SYS.History の 4 つの %SerialObject クラスで定義されます。これらと同じクラスが、間隔ごと、毎時、および日次のデータベースの基礎として使用されるため、すべてのプロパティは集計で 10 進数値として表示できるように %Numeric 型として定義されます。

パフォーマンス関連のメトリックは、以下で定義されます。

  • SYS.History.PerformanceOpens in a new tab — このクラスのプロパティは、グローバル参照やルーチン呼び出しのような一般的なパフォーマンス・メトリックです。

    Note:

    これらのプロパティはすべて “カウンタ” 型であり、間隔データは、最終間隔におけるカウンタの変化を示すデルタとして収集されます。このデータは、毎時および日次の値に集計される際、1 秒あたりの比率に正規化されます。

  • SYS.History.WriteDaemonOpens in a new tab — このクラスのプロパティは、ライト・デーモン・サイクルのパフォーマンスを示します。システムは最後の 20 のライト・デーモン・サイクルを自動的に追跡し、履歴モニタはそれぞれの間隔で発生したサイクルのデータを格納します。通常、それぞれの間隔に複数のサイクルがあります。

システム使用のメトリックは、以下で定義されます。

  • SYS.History.SystemUsageOpens in a new tab — このクラスのプロパティは、システムの使用率を追跡しますが、一般的にパフォーマンス・データ (Caché 内のプロセス数やライセンス情報など) ほど迅速または劇的には変化しません。

  • SYS.History.DatabaseOpens in a new tab — このクラスは、それぞれのローカル・データベースについて、データベースの増大、ファイル・サイズ、および空き容量を追跡します。

データの収集

データの収集を開始するには、以下の操作を実行する必要があります。

  • %SYS ネームスペースで Caché システム・モニタの ^%SYSMONMGR ユーティリティを使用して、Caché アプリケーション・モニタ (システム・モニタの一部) で %Monitor.System.HistoryPerfOpens in a new tab クラスおよび %Monitor.System.HistorySysOpens in a new tab クラス、またはそのいずれかを有効化します。これらのクラスは、既定で %SYS ネームスペースに登録されます。

  • %SYS ネームスペースでシステム・モニタを再起動します。

これらの手順の詳細は、このドキュメントの “Caché システム・モニタの使用” の章の "^%SYSMONMGR を使用したアプリケーション・モニタの管理" と "Start/Stop System Monitor" を参照してください。

一定間隔でのデータ収集の詳細は、次の 2 つの永続クラスで定義します。

データを収集して履歴データを構築するために、アプリケーション・モニタで対応する %Monitor クラスを有効化する必要があります。

既定では、システム・モニタ (アプリケーション・モニタを含む) は、Caché インスタンスの起動時に %SYS ネームスペースで起動します。ただし、他の実行開始ネームスペースを構成することができます。%Monitor クラスは、既定では %SYS でのみ提供されますが、^%SYSMONMGR を使用して他の実行開始ネームスペースに追加することができます。

集計

アプリケーション・モニタが実行する %Monitor.System.HistoryPerfOpens in a new tab クラスと %Monitor.System.HistorySysOpens in a new tab クラスは、毎日の終わりに毎時および日次集計も作成します。集計は、永続クラス SYS.History.HourlyOpens in a new tab および SYS.History.DailyOpens in a new tab として定義されます。これらは、4 つのベース・クラスをすべて埋め込みオブジェクトとして含みます。

それぞれのメトリック・プロパティについて、システムは、毎時間および丸 1 日の平均値、最大値 (高水位)、標準偏差、最小値、中央値、または合計を計算できます。集計関数は、各ベース・クラス (SYS.History.PerformanceOpens in a new tabSYS.History.WriteDaemonOpens in a new tabSYS.History.SystemUsageOpens in a new tab、または SYS.History.DatabaseOpens in a new tab) および各集計期間クラスについて、それぞれのベース・クラスの SetSummary() メソッドを使用して選択できます (または無効にできます)。既定では、履歴モニタは、毎時と日次の両方の集計用に、各クラスの平均値、最大値、および標準偏差を計算します。

Note:

SYS.History.PerformanceOpens in a new tab クラスのカウンタ・プロパティは、これらの計算時 (合計を除く) に 1 秒あたりの比率に正規化されます。

データの削除

集計の作成後、アプリケーション・モニタは間隔データベースと毎時データベースを自動的に削除します。既定の保持期間は、間隔データは 7 日間、毎時データは 60 日間ですが、これらは SYS.History.PerfDataOpens in a new tab クラスと SYS.History.HourlyOpens in a new tab クラスの SetPurge() メソッドを使用して変更できます。SYS.History.DailyOpens in a new tab データは自動的に削除されませんが、SYS.History.Daily:Purge()Opens in a new tab メソッドを使用して手動で削除できます。

データへのアクセス

データベースは永続クラスとして定義されるため、データは標準 SQL または永続オブジェクト・アクセスを使用して利用できます。管理ポータルで SQL ブラウザを使用すると、個々のプロパティ値を含め、作成されたさまざまな SQL スキーマやテーブルをすばやく簡単に表示できます。

SYS.History のそれぞれの永続クラス (SYS.History.PerfDataOpens in a new tabSYS.History.SysDataOpens in a new tabSYS.History.HourlyOpens in a new tab、および SYS.History.DailyOpens in a new tab) には、いくつかの基本クエリが実装されており、これを使用して、特定の日付範囲の個々のテーブルにアクセスできます。クエリの詳細については、クラスリファレンスのドキュメントを参照してください。

個々のテーブルを CSV 形式のファイルにエクスポートできるように、それぞれの永続クラスにはいくつかの Export() メソッドも提供されており、Microsoft Excel といったスプレッドシートでの使用に適しています。特に、SYS.History.PerfData:Export()Opens in a new tab メソッドは、^mgstat ユーティリティが作成するものに非常によく似た形式のファイルを作成します (詳細は、このガイドの “^mgstat を使用したパフォーマンスの監視” の章を参照してください)。

ユーザ定義メトリックの追加

履歴モニタにはユーザ定義メトリックを追加できます (SYS.History パッケージ)。

  1. SYS.History.AdaptorOpens in a new tab から継承される 1 つまたは複数のクラスを作成し、%Numeric プロパティを追加してメトリックを定義します。

    Note:

    ユーザ記述のクラスは %SYS ネームスペースに置く必要があります。また、システム・クラスとの名前の競合やアップグレード時の問題を防ぐために、“Z” または “z” で開始する必要があります。

  2. Sample()Opens in a new tab メソッドをコーディングしてクラスをインスタンス化し、それぞれのプロパティに定期的な値を指定します。このメソッドは、間隔データが収集されたときに呼び出されます。

  3. クラスをコンパイルすると、埋め込みオブジェクトとして SYS.History の間隔永続クラスに追加されます。SYS.History.AdaptorOpens in a new tab クラスで提供される INTERVALOpens in a new tab パラメータを使用して、いつどこで収集するかを選択できます。これにより、以下のテーブルに示されているように、追加先の間隔クラスと、収集を行う %Monitor クラスが選択されます。

    選択される INTERVAL 使用される間隔クラス 使用される %Monitor クラス
    “User” (既定) SYS.History.User %Monitor.System.HistoryUserOpens in a new tab
    “UserPerf” SYS.History.UserPerf %Monitor.System.HistoryPerfOpens in a new tab
    “UserSys” SYS.History.UserSys %Monitor.System.HistorySysOpens in a new tab

    “UserPerf” または “UserSys” を選択すると、SYS.History.PerfDataOpens in a new tab または SYS.History.SysDataOpens in a new tab と同じ間隔および同じタイムスタンプでデータを収集できるため、収集されたデータをシステム・データと簡単に関連付けることができます。“User” を使用すると、3 番目の (無関係の) 時間間隔を選択できます。

    Note:

    SYS.History.AdaptorOpens in a new tab クラスには、プロパティの収集および集計方法のオプションを提供するパラメータがいくつかあります。詳細は、SYS.History.AdaptorOpens in a new tab クラスリファレンスのドキュメントを参照してください。

  4. ユーザ定義クラスも埋め込みオブジェクトとして SYS.History.UserHourly および SYS.History.UserDaily 集計クラスに追加されます。ユーザ定義メトリックは集計されて、システム・メトリックと同じように自動的に削除されます。

    Important:

    ユーザ定義メトリック・クラスは、永続データの埋め込みオブジェクトになります。データ収集が開始した後は、定義を変更しないでください。オブジェクトを削除すると、データが孤立する可能性があります。既存のクラスやプロパティを再定義すると、既に保存されたデータが誤って解釈される可能性があります。

    ただし、Caché オブジェクトのスキーマ進化機能 (詳細は、"Caché オブジェクトの使用法" の“永続オブジェクト・クラスの定義” の章の "スキーマ進化" を参照) により、新しいオブジェクトとプロパティを安全に追加できます。

FeedbackOpens in a new tab