Performance Explorer (PEX) の概要

OS/400 には無償で Performance Explorer (PEX) というパフォーマンス問題のためのデータ収集用のツールがついています。

PEX で収集されたデータについては、パフォーマンス・ツール (5722-PT1) についてくる PRTPEXRPT コマンド、PEX AnalyzerPerformance Trace Data Visualizer (PTDV) などでの分析・出力で使用できます。

PEX についてまとめられたものとしては、かなり前に出版されたものですが「AS/400 Performance Explorer Tips and Techniques」という Redbook があります。
タイトルは "AS/400" になっていますが、Performance Explorer については未だに一番まとまった資料だと思います。


PEX の種類

PEX には STATS、PROFILE、TRACE というオプションがあります。

STATS

STATS については以下のような記述があり、どのプログラム、ジョブがシステム資源 (CPU、ディスク I/O) を多量に使っているか、と特定するために使用されます。

"PEX STATS gives you an extremely accurate account of which programs, processes, and tasks are using system CPU and disk I/O resources"
"Use PEX STATS when problem analysis has identified inexplicable CPU or disk activity within a job or system task."
You use PEX STATS to determine which programs are being called the most, are using more CPU time, or doing more disk accesses than you think they should.

http://www.redbooks.ibm.com/redbooks/SG244781/css/SG244781_53.html

PROFILE

PROFILE オプションは以下にあるように、一度 STATS オプションの PEX などで絞り込まれた問題のありそうなプログラムについて、その中の"ホットスポット"を特定するために使用されます。

"The PEX PROFILE (ADDPEXDFN TYPE(*PROFILE)) option is used to localize CPU hot-spots within a program. To identify the hot-spots, we typically analyize either Performance Tools/400 Transaction (trace data collected) reports or a PRTPEXRPT of a PEX STATS definition collection. This analysis identifies one or more programs that need to be looked at in further detail."

http://www.redbooks.ibm.com/redbooks/SG244781/css/SG244781_115.html

PEX 使用時の考慮点

あくまで大量に CPU が消費されていたり、ディスク I/O が多い、といったような時に STATS でその元を特定し、PROFILE でさらにどこが悪いのかを特定する、というような時に使用されるものが PEX で、たとえば以下にあるように、ウェイトによって起きているような問題については PEX では効果がおそらくない、ということなのでしょうね。(ウェイトを見るにはパフォーマンス・トレース (ロック報告書)Job Watcher を使用することになるでしょう)

"PEX STATS does not show any inter-process dependencies, such as exceptionl waits or object seize/lock waits"

また、Redbook には以下のように、PEX はパフォーマンス分析を行う上で、いきなり最初に使うようなものではない、とあります。
まあ、だいたい収集用の定義の指定 (ADDPEXDFN コマンドのパラメータ) からして難しいし面倒なので、そんな簡単にはできませんが ......

"The PEX functions, which are part of a total AS/400 performance management methodology, should not be the first set of performance tools used when analyzing a performance problem."

PEX 使用の流れ

PEX を使用する流れとしては、以下の Redbook からの図が参考になると思います。

ADDPEXDFN コマンドで PEX データ収集用の定義を作成します。
DSPPEXDFN というようなコマンドはないので、定義を後から細かく見ることはできません。CHGPEXDFN コマンドでごく一部のオプションを見ることができます。また、一部の定義の変更も出来るようになっています。

ADDPEXDFN コマンドで追加した定義を指定して STRPEX コマンドを実行すると、データ収集が始まります。
問題が再現可能であれば、STRPEX コマンドを実行した後で事象を起こせばいいのですが、多量にシステム資源を消費しているもの(ジョブ/プログラム)を特定するという PEX の本来の目的からすれば、資源が消費されている状態が起きていれば、そこで STRPEX コマンドを投入すれば十分目的は達成されるわけです。

図1

ADDPEXDFN での定義にしたがって、SLIC の中の PDC (Performance Data Collector) というモジュールが収集を行います。

こちらの表を見てみるとわかりますが、フック/トラップで情報を収集しているのがわかります。
結果として、収集されるデータの量が膨大になることと、プログラム/ジョブに多大な影響がありそうなことが容易に想像できますね ...... そこでこういうトレースを原理とするツールと比較して、Job Watcher というツールはサンプリングでデータを外側から収集するため、データ量が少なく、実行されているプログラムへのインパクトが少ない、というメリットがあると Job Watcher の Redbook では説明されています。そのうちそれもどんなものか見てみたいなと思っています。

[Top Pageに戻る]

Ads by TOK2