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

^mgstat を使用したパフォーマンスの監視

この章では、基本的なパフォーマンス・データを収集するためのツール、^mgstat ユーティリティについて説明します。

Note:

このユーティリティは、リリース間で更新されている可能性があります。ftp://ftp.intersys.com/pub/performance/Opens in a new tab からの newmgstat.xml のダウンロードについては、インターシステムズのサポート窓口Opens in a new tabまでお問い合わせください。

^mgstat%SYS ネームスペースから呼び出す必要があり、以下の位置を示す引数を使用できます。

引数 説明
sample time

この引数は、カウンタのサンプリング周期 (秒単位) を指定します。指定されていない場合、既定は 2 秒です。

Note:

sample time に 10 秒を超える値が指定されている場合、^mgstat により 10 秒に引き下げられます。この表の number of samples 引数も参照してください。

number of samples

この引数は、取得するサンプルの最大数を指定します。指定されていない場合、既定は 10 回の反復です。

Note:

^mgstat により sample time が引き下げられた場合は、いずれの引数も変更されていないときと実行時間 (sample time * number of samples) が事実上同じになるように、指定されている number of samples が引き上げられます。

filename

この引数は、^mgstat で生成される .mgst ファイルの install-dir\mgr を基準としたファイル名を指定します。指定されていない場合、既定のファイル名は ServerName_InstanceName_Date_Time.mgst です。

page length

^mgstat を対話的に実行する場合、この引数にはヘッダ行が繰り返されるまでに表示する行数を指定します。既定値は 0 で、ヘッダはページの最初に一度だけ表示されます。5 行未満の値 (0 以外) を指定した場合、^mgstat は値を 5 に増やします。

Note:

^mgstat をバックグラウンド・ジョブとして実行する場合、この引数は無視されます。

例えば、^mgstat をバックグラウンド・ジョブとして実行する場合、17,280 個のファイル・サンプルが収集されるまで、5 秒おきにサンプルを取得するように指定するには、(ターミナルを使用して、%SYS ネームスペースから) 以下のように入力します。

%SYS>JOB ^mgstat(5,17280)

また、^mgstat を対話的に実行して同様のサンプリングを指定し、データが 10 行出力されるたびにヘッダが表示されるようにするには、以下のように入力します。

%SYS>DO ^mgstat(5,17280,,10)

既定では、^mgstatserver nameconfiguration name、および date and time に基づいてファイル名を生成します。拡張子は “mgst” です。この拡張子は、Microsoft Excel で記述された、データのグラフ化を支援するアナライザ・ツールにより認識されます。既定では、このファイルは InterSystems IRIS® Data Platform インスタンスの install-dir\mgr ディレクトリに格納されます。ただし、^SystemPerformance ユーティリティを使用して出力ディレクトリが変更されている場合 (このドキュメントの “^SystemPerformance を使用したパフォーマンスの監視” の章にある "出力ディレクトリの変更" を参照)、^mgstat はその出力ディレクトリを使用します。

Note:

mgst ファイルは、^SystemPerformance ユーティリティを実行した場合にも生成され、HTML パフォーマンス・レポートに含められます (このドキュメントの “^SystemPerformance を使用したパフォーマンスの監視” の章を参照)。

システムのパフォーマンスに対する影響を最小限に抑えるために、^mgstat ユーティリティは共有メモリからさまざまなカウンタ情報を抽出します。このユーティリティを実行中にパフォーマンスの問題の発生が明らかになった場合には、データを使用して問題の調査を実施できます。分析を行う場合は、インターシステムズのサポート窓口Opens in a new tabにご相談ください。^mgstat の実行とファイルの削除の両方を自動化するタスクが用意されています。

報告されたデータの大半は、後述のテーブルに注記されているものを除き、1 秒単位の値に平均化されます。生成された出力ファイルは、Microsoft Excel などのスプレッドシート・ツールでより簡単に解釈することが可能で読みやすいコンマ区切り値 (CSV) 形式をとります。ファイルの最初の行はヘッダ行で、ファイル名とユーティリティのバージョンが記載されています。また、バッファの割り当てや監視対象の製品のバージョンに関する情報もあります。データの列数は、製品のバージョンによって異なりますが、先頭の 2 列は日付と時刻で、残りの列は以下のとおりです。

列名 説明 留意事項
Glorefs

グローバル参照 (データベース・アクセス)。

現在のワークロードに対して発生する処理の量を示します。グローバル参照は CPU 時間を消費しますが、バッファ・プールがあるので、必ずしも物理的な読み取りを要するわけではありません。

 
RemGrefs *

リモート・グローバル参照 (データベース・アクセス)。

分散キャッシュ・クラスタ・アプリケーション・サーバの代わりに生成されるグローバル参照の数を示します。

 
GRratio

リモート・グローバル参照に対するグローバル参照の割合。

 
PhyRds

ディスクからの物理的な読み取り。

物理的な読み取りの回数が多い場合、パフォーマンスの問題が発生することがあります。その場合は、データベース (グローバル) のバッファの数を増やすことでパフォーマンスを向上させることができます。

 
Rdratio

論理ブロック読み取りと物理ブロック読み取りの比率。ただし、物理ブロック読み取りがゼロの場合は、ゼロになります。

 
Gloupds

グローバル更新 (set または kill)。

 
RemGupds *

リモート・グローバル更新。

 
Rourefs

ルーチン参照 (tag^routine など)。

 
RemRrefs *

リモート・ルーチン参照。

 
RouLaS

ルーチンのロード、および保存 (ディスクからのフェッチまたはディスクへの保存)。

ルーチンのロードや保存の回数が多い場合、パフォーマンスの問題が発生することがあります。その場合はルーチン・バッファの数を増やすことでパフォーマンスを向上できます。

 
RemRLaS *

リモートでのルーチンのロードと保存。

 
PhyWrs

ディスクへの物理書き込み。

 
WDQsz

ライト・デーモン・キューのサイズ (ブロック単位)。

単位は秒ではありません。

WDtmpq

IRISTEMP 内の更新されたブロック。

単位は秒ではありません。

WDphase

ライト・デーモンのフェーズ。

最も一般的なフェーズは以下のとおりです。

  • 0: アイドル状態です (WD は実行されていません)。

  • 5: WD はライト・イメージ・ジャーナル (WIJ) ファイルを更新しています。

  • 7: WD は WIJ とジャーナルをコミットしています。

  • 8: データベースを更新しています。

単位は秒ではありません。

Wijwri

WIJ に書き込まれた 256KB ブロックの数。

WD が WIJ にデータを書き込み中のときは、この値は 0 以外になります。

 
RouCMs

ルーチン・キャッシュ・ミスの回数。

 
Jrnwrts

ジャーナルに書き込まれたブロックの数。

 
GblSz

グローバル・リソース上の Seize の数。この章の “Seize、ASeize、および NSeize に関する注意事項” を参照してください。

 
pGblNsz

グローバル・リソース上の NSeize の割合。この章の “Seize、ASeize、および NSeize に関する注意事項” を参照してください。

 
pGblAsz

グローバル・リソース上の ASeizes の割合。この章の “Seize、ASeize、および NSeize に関する注意事項” を参照してください。

 
RouSz

ルーチン・リソース上の Seize の数。この章の “Seize、ASeize、および NSeize に関する注意事項” を参照してください。

 
pRouAsz

ルーチン・リソース上の ASeizes の割合。この章の “Seize、ASeize、および NSeize に関する注意事項” を参照してください。

 
ObjSz

オブジェクト・リソース上の Seize の数。この章の “Seize、ASeize、および NSeize に関する注意事項” を参照してください。

 
pObjAsz

オブジェクト・リソース上の ASeizes の割合。この章の “Seize、ASeize、および NSeize に関する注意事項” を参照してください。

 
ActECP *

アクティブな ECP 接続の数。

単位は秒ではありません。

Addblk *

ECP クライアントのキャッシュに追加されたブロックの数。

 
PrgBufL *

ECP クライアントにおけるグローバル・バッファの不足のために ECP クライアントのキャッシュから削除されたブロックの数。

この数が多い場合、ECP クライアントでパフォーマンスの問題が発生することがあります。その場合は、ECP クライアントのグローバル・バッファの数を増やすことでパフォーマンスを向上できます。

 
PrgSrvR *

ECP サーバにより ECP クライアントのキャッシュから削除されたブロックの数。

 
BytSnt *

ECP クライアントとして送信したバイト数

 
BytRcd *

ECP クライアントとして受信したバイト数。

 
WDPass

起動以降の WD サイクル。

単位は秒ではありません。

IJUCnt

このサイクルを継続するために WD が待機しているジョブの数。

単位は秒ではありません。

IJULock

IJULock フラグが設定されているかどうかを示します。

IJULock が設定されている場合、WD の書き込みサイクルが終了するまですべての更新がロックされます。

単位は秒ではありません。

PPGrefs すべてのプロセス・プライベート・グローバル・アクセスのカウント。  
PPGupds すべてのプロセス・プライベート・グローバル更新のカウント。  

* ECP 構成を使用していない場合は、0 が表示されます。

Seize、ASeize、および NSeize に関する注意事項

他のプロセスの干渉を受けずに更新が実行されるようにするため、指定されたリソースに対してジョブが排他的にアクセスする必要がある場合には Seize が発生します。所定の Seize が即座に満たされない場合は、満たされるまで更新が延期されます。

シングル CPU システムの場合、このプロセスは直ちに休止状態になります (リソースを保持しているプロセスがその更新を完了してリソースを解放するまでは何もできないためです)。

マルチ CPU システムの場合、プロセスは妥当な時間内にリソースを取得することを “見込んで” 保留ループに入ることで、休止状態による負荷の発生を回避します。保留ループ中にプロセスがリソースにアクセス可能になった場合は、直ちにループが終了し、プロセスの更新が続行されます。更新が終了すると、プロセスはそのリソースを待機している可能性のある他のプロセスにリソースを解放します。これが Aseize です。保留ループの最後でリソースが別のプロセスによって保持されている場合、プロセスは実行されず、リソースが解放されるまで引き続き休止状態のまま待機します。これが Nseize です。

シングル CPU システムで複数プロセスが実行されるときには Nseize のような状況が当然生じ、マルチ CPU システムで複数プロセスが実行されるときには Aseize のような状況が当然生じます。この 2 つの違いは、Nseize では、実行中のプロセスのコンテキストをオペレーティング・システムが変更する必要があることから、CPU のシステム時間または特権時間が発生するのに対し、Aseize では、リソースが解放され確保されるまで、あるいは中断して休止状態になるまで継続して CPU が実行されるため、CPU のユーザ時間が発生する点です。一般的に、マルチ CPU システムでは、コンテキスト・スイッチを実行するほうが、そうした操作を回避するために数回ループするよりもオペレーティング・システムの負荷が高くなります。これは、マルチ CPU システム上でのコンテキスト・スイッチに付随して CPU のオーバーヘッドやメモリの遅延が発生することに起因します。

FeedbackOpens in a new tab