記事
· 2024年1月12日 6m read

^mypButtons を利用して InterSystems IRIS パフォーマンスをチェックしてみましょう

[背景]

InterSystems IRIS 製品には、便利なツール ^SystemPerformance (Caché / Ensemble 時代は ^pButtons と呼ばれていました) があり、データベースのパフォーマンス情報を HTML 形式で出力してくれます。 IRIS for Windows で ^SystemPerformance を実行すると、 InterSystems 独自のパフォーマンスログ mgstat と Windows パフォーマンスログの両方を含んだ HTML が生成されます。

^SystemPeformance は良いレポートを出力してくれるのですが、たとえば、それを元にパフォーマンスグラフを作ろうとすると、HTMLファイルから手動でコピーし、それをExcelなどに貼り付ける必要があります。これに関連して、すでに、多くの開発者が この開発者コミュニティ記事 にあるように便利なツールを作成しています(記事原文の作成者 @Murray.Oldfield さん、ありがとうございます)

本日は、これに関連した新しいツール ^mypButtons をご紹介します!

 

[^mypButtons が他のツールに比べて新しい点]

mypButtons.mac は、ページ右上の OpenExchange ボタンからダウンロードいただけます。

  • ^mypButtons は、mgstat と Windows パフォーマンスログ を同じ行に出力します。これにより、"PhyWrs" (mgstat) と "Disk Writes/sec" (Win perfmon) を同じグラフで比較するなども可能です。
  • ^mypButtons は複数の HTML ファイルを一気に読み、1つの CSV にまとめて生成できます。
  • ^mypButtons は CSV ファイルを実行するお客様のマシン上に生成するため、グラフの作成がより簡単になっています。
  • ^mypButtons は パフォーマンスを把握するためにおすすめのカラムをピックアップして CSV に出力しています。そのため、どなたでも簡単にパフォーマンス関連グラフを作ることができます!

注意! 生成される mypButtons.csv をお使いいただくには, "every 1 second" プロファイルによる SystemPerformance のHTMLをご利用ください。

 

[ルーチン呼び出し概要]

do readone^mypButtons("C:\temp\dir\myserver_IRIS_20230522_130000_8hours.html","^||naka")

readone ラベルは、指定された1つの SystemPerformance HTML ファイルを読みこみ、指定グローバルに情報を格納します。上記の例では myserver_IRIS_20230522_130000_8hours.html を読みこみ、^||naka にデータを格納します。

do readdir^mypButtons("C:\temp\dir","^||naka")

readdir ラベルは、指定されたフォルダ以下にある SystemPerformance HTML ファイルすべてを読みこみ、指定グローバルに情報を格納します。上記の例では C:\temp\dir 以下にある複数の HTML ファイルを読みこみ、^||naka にデータを格納します。

do writecsv^mypButtons("C:\temp\csv","^||naka")

writecsv ラベルは、指定グローバルの情報をもとに、以下 3つの CSV ファイルを、指定フォルダ直下に生成します。

  • mgstat.csv
  • perfmon.csv
  • mypButtons.csv

ここで mypButtons.csv にはデフォルトで以下のカラム情報が含まれます。これは私がお勧めする「パフォーマンス計測時に、最初にチェックすべき項目」たちになります。

  • mgstat: Glorefs, PhyRds, Gloupds, PhyWrs, WDQsz, WDphase
  • perfmon: Available MBytes, Disk Reads/sec, Disk Writes/sec, % Processor Time

本ユーティリティは、InterSystems IRIS, InterSystems IRIS for Health, Caché, Ensemble for Windows で動作します。

 

[^mypButtons を利用してパフォーマンスグラフを生成するまでの具体的な手順例]

(1) まず ^SystemPerformance を実行し、InterSystems 独自のパフォーマンス統計 mgstat と Windows パフォーマンスモニタ統計 perfmon を取得します。InterSystems IRIS にはいくつかのプロファイルが最初から用意されているため、すぐ実行できます。IRIS ターミナルを起動し、以下を実行します。

%SYSdo ^SystemPerformance
Current log directory: c:\intersystems\iris\mgr\
Windows Perfmon data will be left in raw format.
Available profiles:
  1 12hours - 12-hour run sampling every 10 seconds
  2 24hours - 24-hour run sampling every 10 seconds
  3 30mins - 30-minute run sampling every 1 second
  4 4hours - 4-hour run sampling every 5 seconds
  5 8hours - 8-hour run sampling every 10 seconds
  6 test - 5-minute TEST run sampling every 30 seconds
select profile number to run: 3

注意! mypButtons.csv をお使いいただくには、 "every 1 second" =「1秒間隔で情報を取得する」プロファイルをご利用ください。製品には最初から、1秒間隔に情報を取得する "30 mins" =「30分間情報を取得する」プロファイルが用意されていますので、上記例でもこれを利用しています。もし別のプロファイルを作成したい場合は ドキュメント をご参照ください。

(2) パフォーマンス取得が終わると、irisdir\mgr 直下に、JP7320NAKAHASH_IRIS_20231115_100708_30mins.html といった名前のHTMLファイルが出力されます。ブラウザで開き、以下のように mgstat と perfmon セクションをクリックすると、カンマ区切りの生データを見ることが出来ます。 

 

(3) この生成 HTML を ^mypButtons を使って、以下のようにロードします。

USER> do readone^mypButtons("C:\InterSystems\IRIS\mgr\JP7320NAKAHASH_IRIS_20231115_100708_30mins.html","^||naka")

第1引数の HTML ファイルをよみ、第2引数で指定したグローバルに HTML ファイル内のパフォーマンスデータを格納します。

(4) ^mypButtons を使って CSV を出力します。

USER> do writecsv^mypButtons("C:\temp","^||naka")

第1引数で指定したフォルダ以下に、第2引数で指定したグローバルに格納されたパフォーマンスデータから、3つの CSV ファイルが出力されます。mypButtons.csv をエクセルで開くと、以下の図のように、mgstat と perfmon ログが1行にまとめて記録されているのがわかります。黄色カラムが mgstat、青色カラムが perfmon です。

 

(5) この CSV から簡単なグラフを作ってみましょう。カラムB Time とカラムC Glorefs を同時に選択し、以下のように 挿入 メニューから 2-D 折れ線グラフ を選択します。 

 

すると以下のように、"1秒ごとのグローバル参照数" のグラフが出力されます。このログを取得した IRIS インスタンスではほとんど処理が行われていなかったので、つまらないグラフになってしまいましたが、本番環境のサーバで実行すると、とても興味深い情報が得られると思います!

 

(6) mypButtons.csv には上記だけでなく、私がお勧めする「パフォーマンス確認必須項目」が出力されるようになっています。なぜこれらのカラムが必須なのかご興味をお持ちの方は、ぜひ Murray コミュニティ記事シリーズ をご覧くださいませ。

 

[出力カラムを変更するために ^mypButtons を編集する]

mypButtons.csv に出力されるカラムを変更したい場合は、writecsv ラベルを編集してください。ルーチンの以下の場所で出力カラムを調整いただけます。 

 

 

この記事と ^mypButtons が、みなさんの大切な InterSystems IRIS のパフォーマンスを、みなさんご自身で確認いただくきっかけになれば幸いです。Happy SystemPeformance 😆

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください