Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

^PERFMON を使用したシステム・パフォーマンスの監視

^PERFMONMONITOR 機能を制御する ObjectScript ユーティリティです。

MONITOR 機能は、イベントの発生回数をシステム・レベルで集計し、プロセス、ルーチン、グローバル、およびネットワーク・ノード別にメトリックを並べ替えることによって、InterSystems IRIS® Data Platform システムのパフォーマンス・データを提供します。これらのデータの収集にはオーバーヘッドが伴うため、カウンタの収集を明確に有効化し、データ収集の対象とするプロセス、グローバル、ルーチン、およびネットワーク・ノードの数を指定する必要があります。MONITOR の起動時に、プロセス、ルーチン、グローバル、およびノードの数に必要なスロットを作成するためのメモリが割り当てられます。イベント・カウンタをトリガする最初のプロセスが最初のスロットを割り当て、そのカウンタ・セットに追加します。利用できるすべてのスロットがプロセスに割り当て済みになると、以降に発生するプロセスのカウントは他のスロットに記録されます。グローバル、ルーチン、およびノードについても同様の手順が実行されます。

収集の実行中でも、データのレポート内容を確認できます。収集を停止すると、メモリの割り当てが解除され、カウンタ・スロットが削除されます。したがって、データを保持するには、レポートをファイル (またはグローバル) に書き込む必要があります。既定では、1 秒あたりの比率としてデータが提示されますが、未加工の合計データを収集するためのオプションもあります。さらに、収集を一時停止/再開したり、カウンタをゼロにするための関数も用意されています。

^PERFMON の実行時に表示されるメニュー項目は、^PERFMON ルーチンで使用できる関数に直接対応しています。また、収集されたデータは、これらの関数のパラメータとしてそのまま使用されます。

同じ MONITOR 機能を制御する類似の関数群が、%Monitor.System パッケージのクラスに用意されています。詳細は、このドキュメントの “システム・モニタの使用” の章の "アプリケーション・モニタ" およびこのドキュメントの “^%SYS.MONLBL を使用したルーチン・パフォーマンスの検証” の章を参照してください。

^PERFMON の使用

^PERFMON ルーチンは、InterSystems ターミナルでインタラクティブに実行するか、または関数の個別の呼び出しによって実行するかの 2 つの方法で実行できます。どちらかの方法を使用する場合も、^PERFMON のすべてのオプションを使用できます。

^PERFMON には、以下の関数があります。

各関数は、成功 (1) または失敗 (負の数値の後にコンマと短いメッセージ) のステータスを返します。

^PERFMON と、行単位の監視ルーチンである ^%SYS.MONLBL は、同一のメモリ割り当てを共有しているため、1 つの InterSystems IRIS インスタンスで一度に実行できるのはいずれか一方のみです。^%SYS.MONLBL で監視を実行しているときに ^PERFMON を実行しようとすると、以下のメッセージが表示されます。

The Line-by-line Monitor is already enabled.
This must be stopped before ^PERFMON can be used.

^PERFMON のインタラクティブな実行

以下は、ターミナルで ^PERFMON ルーチンをインタラクティブに実行する例です。

  1. %SYS ネームスペースで、以下のコマンドを入力します。

    do ^PERFMON
    
  2. 以下のメニューが表示されます。実行する操作の番号を入力します。ルーチンを終了するには Enter キーを押します。

    1. Start Monitor
    2. Stop Monitor
    3. Pause Monitor
    4. Resume Monitor
    5. Sample Counters
    6. Clear Counters
    7. Report Statistics
    8. Timed Collect and Report
     
    Monitor is Stopped
    
    Enter the number of your choice:
    
  3. 各オプションは ^PERFMON の機能に直接対応しており、必要なパラメータがある場合は入力を求められます。例えば、1 を入力することは Start 機能を使用することに相当します。

    1. Start Monitor
    2. Stop Monitor
    3. Pause Monitor
    4. Resume Monitor
    5. Sample Counters
    6. Clear Counters
    7. Report Statistics
    8. Timed Collect & Report
     
    Monitor is Stopped
     
    Enter the number of your choice: 1
     
     
    Processes <24>:
    Routine <200>:
    Globals <100>:
    Databases <10>:
    Network nodes <5>:
    

Start

統計情報の収集を有効にします。

形式 :

    status = $$Start^PERFMON(process,routine,global,database,network)

パラメータ :

  • process — プロセス向けに確保するスロット数 (既定値は $$pcount (プロセス・テーブル内のプロセス数))

  • routine — ルーチン向けに確保するスロット数 (既定値は 200)

  • global — グローバル向けに確保するスロット数 (既定値は 100)

  • database — データベース向けに確保するスロット数 (既定値は 10)

  • network — ネットワーク・ノード向けに確保するスロット数 (既定値は 5)

^PERFMON をインタラクティブに実行すると、これらパラメータの値を指定するように要求されます。

状態コード :

状態コード 説明
1 成功
-1 他のユーザがモニタを使用しています
-2 モニタが既に実行されています
-3 メモリの割り当てに失敗しました
-4 統計情報の収集を有効にできません

Stop

統計の収集を中止ます。

形式 :

    status = $$Stop^PERFMON()

状態コード :

状態コード 説明
1 成功
-1 他のユーザがモニタを使用しています
-2 モニタが実行されていません

Pause

統計の収集を一時的に停止し、データを確認するために一貫性のある状態とします。

形式 :

status = $$Pause^PERFMON()

状態コード :

状態コード 説明
1 成功
-1 他のユーザがモニタを使用しています
-2 モニタが実行されていません
-3 モニタが既に一時停止しています

Resume

一時停止している統計収集を再開します。

形式 :

status = $$Resume^PERFMON()

状態コード :

状態コード 説明
1 成功
-1 他のユーザがモニタを使用しています
-2 モニタが実行されていません
-3 モニタが既に実行されています

Sample Counters

収集の一時停止と再開を連続的に行うジョブを開始して、メトリックを定期的にサンプリングします。wait_time が 0 の場合、バックグラウンド・ジョブは停止し、収集は一時停止します。

形式 :

status = $$Sample^PERFMON(wait_time,sample_time)

パラメータ :

  • wait_time — 収集間隔の秒数 (既定値は 10)

  • sample_time — 収集を継続する秒数 (既定値は 1)

状態コード :

状態コード 説明
1 成功
-2 モニタが実行されていません
-8 サンプル・ジョブは既に実行中です

Clear

すべてのメトリック・カウンタをクリアします。

形式 :

status = $$Clear^PERFMON()

状態コード :

状態コード 説明
1 成功
-1 他のユーザがモニタを使用しています
-2 モニタが実行されていません

Report

レポート機能でメトリックをまとめ、レポートとして出力します。

形式 :

status = $$Report^PERFMON(report,sort,format,output,[list],[data])

パラメータ :

  • report — 出力するレポートの種類。以下の値を指定できます。

    • G – グローバル動作のレポート

    • R – ルーチン動作のレポート

    • N – ネットワーク動作のレポート

    • C – レポートの対象とするメトリックを選択して設定したカスタム・レポート

  • sort — レポートのグループ分けと並べ替えの順序。以下の値を指定できます。

    • P – Process (プロセス) で並べ替え

    • R – Routine (ルーチン) で並べ替え

    • G – Global (グローバル) で並べ替え

    • D – Database (データベース) で並べ替え

    • I – Incoming node (着信ノード) で並べ替え

    • O – Outgoing node (発信ノード) で並べ替え

  • format — 出力形式。以下の値を指定できます。

    • P – 印刷可能または表示可能なレポート (.txt ファイル、ページ付けなし)

    • D – スプレッドシートで読み取り可能なコンマ区切りデータ (.csv ファイル)

    • X – Excel へのインポートに適した Microsoft Excel XML マークアップ (.xml ファイル)

    • H – HTML ページ (.html ファイル)

  • output — ファイル名を入力するか、表示された既定のファイル名を受け入れる場合は Return キーを押すか、画面に出力する場合は 0 (ゼロ) を指定します。

  • list — (カスタム・レポートの場合のみ) レポートに記録する列を指定するメトリック番号のコンマ区切りリスト。使用可能なすべてのメトリックとその番号をリストする場合は、カスタム・レポートを指定した後に ? と入力します。

    グローバル、ルーチン、またはネットワークの動作を示すレポート (これは report パラメータで指定します) には、このリストの事前定義サブセットが表示されます。

  • data — レポートするデータの種類。以下の値を指定できます。

    • 1 – 1 秒あたりの標準比率

    • 2 – 未加工の合計データ

状態コード :

状態コード 説明
1 成功
-1 モニタが実行されていません
-2 入力パラメータがありません
-3 レポートのカテゴリが正しくありません
-4 レポートの編成が正しくありません
-5 レポートの形式が正しくありません
-6 カスタム・レポートのリストが正しくありません
-7 データの形式が正しくありません

"レポートの例" のセクションでは、入力パラメータとしてさまざまな値を入力する例を紹介しています。

Collect

この時間制限付き収集およびレポート関数では、システム・パフォーマンスの自動高速スナップショットを実現します。指定された期間 (既定では 30 秒) メトリックを収集し、5 つの基本レポートと 1 つのプロセス・カウントを作成し、それらをまとめて Excel スプレッドシートまたは HTML ページとしてフォーマット設定します。

形式は以下のようになります。

status = $$Collect^PERFMON(time,format,output)

パラメータ :

  • time — データ収集時間 (秒) (既定値は 30)

  • format — 出力形式。以下の値を指定できます。

    • X – Excel へのインポートに適した Microsoft Excel XML マークアップ (.xml ファイル)

    • H – HTML ページ (.html ファイル)

  • output — ファイル名を入力するか、表示された既定のファイル名を受け入れる場合は Return キーを押すか、画面に出力する場合は 0 (ゼロ) を指定します。

状態コード :

状態コード 説明
1 成功
-1 他のユーザがモニタを使用しています
-3 モニタが既に実行されています

レポートの例

以下の例では、グローバルの統計を収集してグローバル名で並べ替え、マネージャのディレクトリにある perfmon.txt というファイルに出力するレポートを実行します。

%SYS>Do ^PERFMON


1. Start Monitor
2. Stop Monitor
3. Pause Monitor
4. Resume Monitor
5. Sample Counters
6. Clear Counters
7. Report Statistics
8. Timed Collect & Report
 
Enter the number of your choice: 7
 
 
Category may be: G=Global, R=Routine, N=Network or C=Custom
Category ('G', 'R', 'N' or 'C'): g
Sort may be: P=Process, R=Routine, G=Global, D=Database, I=Incoming or O=Outgoing node
Sort ('P', 'R', 'G', 'D', 'I' or 'O'): g
Format may be: P=Print, D=Delimited data, X=Excel XML, H=HTML
Format ('P', 'D', 'X', 'H'): p
File name: perfmon.txt
 
 
 
Press RETURN to continue ... 

以下の例では、メトリック番号が 5、10、15、20、25、30、35、40、45、50 に該当する統計を扱うカスタム・レポートを実行します。収集されたカウントはプロセス ID で並べ替えられ、管理者のディレクトリにある perfmonC.txt というファイルに出力されます。

1. Start Monitor
2. Stop Monitor
3. Pause Monitor
4. Resume Monitor
5. Sample Counters
6. Clear Counters
7. Report Statistics
8. Timed Collect & Report
 
Enter the number of your choice: 7
 
 
Category may be: G=Global, R=Routine, N=Network or C=Custom
Category ('G', 'R', 'N' or 'C'): c
List of field numbers: 5,10,15,20,25,30,35,40,45,50
Sort may be: P=Process, R=Routine, G=Global, D=Database, I=Incoming or O=Outgoing node
Sort ('P', 'R', 'G', 'D', 'I' or 'O'): p
Format may be: P=Print, D=Delimited data, X=Excel XML, H=HTML
Format ('P', 'D', 'X', 'H'): p
File name: perfmonC.txt 
FeedbackOpens in a new tab