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?

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

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

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

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

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

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

^PERFMON の使用

^PERFMON ルーチンの使用方法には、インタラクティブに実行する方法と、他のルーチンから関数として呼び出す方法の 2 とおりがあります。^PERFMON の実行時に表示されるメニュー項目は、^PERFMON ルーチンで呼び出せる関数に直接対応しています。また、収集されたデータは、これらの関数のパラメータとしてそのまま使用されます。各関数は、その実行の成功または失敗を示す値を返します (実行に成功した場合は、1 を返します。実行に失敗した場合は、負の数値の後に短いメッセージをコンマで区切って付加した値を返します)。

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

  1. 以下のコマンドを入力します。

    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:
    
    

これらの各メニュー・オプションは、ルーチンで呼び出し可能な関数に対応しています。以下の関数を使用できます。

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

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

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 — (カスタム・レポートの場合のみ) レポートに記録する列を指定するメトリック番号のコンマ区切りリスト。以下のメトリックを指定できます。

    カスタム ^PERFMON レポートに記録できるメトリック
    メトリック番号 列タイトル 説明
    1 GloRef グローバル参照
    2 GloSet グローバル更新数
    3 GloKill グローバル削除
    4 TotBlkRd 物理ブロックの合計読み取り数 (次の 7 つのカウンタの合計)
    5 DirBlkRd ディレクトリ・ブロックの読み取り数
    6 UpntBlkRd 上部ポインタ・ブロックの読み取り数
    7 BpntBlkRd 下部ポインタ・ブロックの読み取り数
    8 DataBlkRd データ・ブロックの読み取り数
    9 BdataBlkRd ビッグ・データ・ブロックの読み取り数
    10 MapBlkRd マップ・ブロックの読み取り数
    11 OthBlkRd その他のブロックの読み取り数
    12 DirBlkWt ディレクトリ・ブロックの書き込み数
    13 UpntBlkWt 上部ポインタ・ブロックの書き込み数
    14 BpntBlkWt 下部ポインタ・ブロックの書き込み数
    15 DataBlkWt データ・ブロックへの書き込み
    16 BdataBlkWt ビッグ・データ・ブロックの書き込み数
    17 MapBlkWt マップ・ブロックへの書き込み
    18 OthBlkWt その他のブロックへの書き込み
    19 DirBlkBuf グローバル・バッファによって満たされたディレクトリ・ブロック要求
    20 UpntBlkBuf グローバル・バッファによって満たされた上部ポインタ・ブロック要求
    21 BpntBlkBuf グローバル・バッファによって満たされた下部ポインタ・ブロック要求
    22 DataBlkBuf グローバル・バッファによって満たされたデータ・ブロック要求
    23 BdataBlkBuf グローバル・バッファによって満たされたビッグ・データ・ブロック要求
    24 MapBlkBuf グローバル・バッファによって満たされたマップ・ブロック要求
    25 OthBlkBuf グローバル・バッファによって満たされたその他のブロック要求
    26 JrnEntry ジャーナル・エントリ
    27 BlkAlloc 割り当てられたブロック
    28 NetGloRef ネットワーク・グローバル参照
    29 NetGloSet ネットワーク Set
    30 NetGloKill ネットワーク Kill
    31 NetReqSent 送信されたネットワーク要求
    32 NCacheHit ネットワーク・キャッシュ・ヒット
    Note:

    現在のネットワーク・プロトコルでは、このカウンタは使用できません。ただし、NetGloRef - NetGloSet - NetGloKill - NCacheMiss の式を使用してネットワーク・キャッシュ・ヒットを計算できます。

    33 NCacheMiss ネットワーク・キャッシュ・ミス
    34 NetLock ネットワーク・ロック
    35 RtnLine M コマンド
    36 RtnLoad ルーチンのロード
    37 RtnFetch ルーチンの取得
    38 LockCom ロック・コマンド
    39 LockSucc 成功したロック・コマンド
    40 LockFail 失敗したロック・コマンド
    41 TermRead ターミナルの読み取り
    42 TermWrite ターミナルの書き込み
    43 TermChRd ターミナル読み取り文字数
    44 TermChWrt ターミナル書き込み文字数
    45 SeqRead シーケンシャル・リード
    46 SeqWrt シーケンシャル・ライト
    47 IJCMsgRd 読み取ったローカル IJC メッセージ
    48 IJCMsgWt 書き込まれたローカル IJC メッセージ
    49 IJCNetMsg 書き込まれたネットワーク IJC メッセージ
    50 Retransmit ネットワーク再送
    51 BuffSent 送信されたネットワーク・バッファ

    グローバル、ルーチン、またはネットワークの動作を示すレポート (これは 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, I=Incoming or O=Outgoing node
Sort ('P', 'R', 'G', 'I' or 'O'): g
Format may be: P=Print, D=Delimited data
Format ('P' or 'D'): 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, I=Incoming or O=Outgoing node
Sort ('P', 'R', 'G', 'I' or 'O'): p
Format may be: P=Print, D=Delimited data
Format ('P' or 'D'): p
File name: perfmonC.txt
 
 
 
FeedbackOpens in a new tab