ColdFusion セミナー
パフォーマンスモニターツールセット（ＰＭＴ）入門0

アジェンダ1. PMTについて（概要）2. 機能の紹介

3. その他の機能
4. 運用例

5. インストールの注意点
6. その他の注意点

1

①PMTについて（概要）2

ＰＭＴでできること
1. ColdFusionの状態をモニタリング

 グラフを多用し、現在の状態を直感的に表現 ブラウザベースのモニター画面
 色やドーナツグラフなどで視覚的に伝える
 Webサーバー、JVM、DBアクセスなども表示

2. アプリケーション性能管理(APM) パフォーマンスの分析や把握、低下の検知

 パフォーマンス低下時のアラート通知・アクション 情報の細分化（ドリルダウン）によるボトルネックを調査
 スレッドダンプの取得・分析やガベージコレクションの実行 パフォーマンスデータを保管し、時系列で表示を切り替え3

CF2016まで（サーバーモニター）
 計測・計算はCFサーバー側で実行 「監視」「プロファイル」「メモリ使用量」の測定

 測定や統計情報はそれぞれのCFサーバー内で行われた
 それぞれのCFサーバーにアクセスして確認する必要があった
 サーバーのパフォーマンスにも影響を与えた

 計測・計算データを保持できなかった CFサーバーの再起動などで統計情報は初期化された

Webブラウザ(Flashベース)

計測・計算
サーバー
モニター
計測・計算
サーバー
モニター

計測・計算
サーバー
モニター

4

ＰＭＴでは CFサーバーから切り離し、さらにアプリケーシ

ョン性能管理ツールの機能を実装

 計測データをデータストアに送付・保存
 統計情報や計算・ＵＩなどはPMTが実行
計算・モニター

ＰＭＴ

データストア←計測値
5

ＰＭＴの特徴 無償のツール

 ColdFusionとは別のインストーラーで提供

 Enterprise版 / Standard版の両方で利用可能

 旧サーバーモニターは Enterprise 版でのみ使用可能

 ColdFusionとプロセスを分離

 ColdFusion側の負荷を抑えられる 複数のColdFusionもPMTでまとめて管理

 ColdFusionの状態の可視化と時間軸で遡りが可能
 アプリケーション性能管理の機能

 測定するためのプログラムの改修が要らない タグ（一部）の実行回数やパフォーマンスもPMTで確認
6

ＰＭＴ2021の強化点
 ColdFusion 2021で追加された機能の監視 クラウドサービスの呼び出しを測定

 AWS S3、Azure Blob、AWS SQS、AWS SNS など

 NoSQL

 監視機能の強化 表示項目の追加（クエリキャッシュ・バイト指標・他）

 データストアから手動・スケジュールによるデータの破棄 アラートの削除
 PMT単体でのUpdate※一部機能はPMT2018でも最新のUpdateで対応

7

②機能の紹介8

概要（Overview）
ColdFusionのシステム全体が今、どのような状況であるかをモニタリング

9ポータル画面 現在のColdFusionな総合的なパフォーマンスをグラフ表示
 詳細グラフや詳細ページに遷移（ドリルダウン）

10

平均応答時間の詳細グラフ
 コネクタ, CFサーバ, DB, 外部サービスの積み上げグラフ
 項目をクリックすると、対象の処理の一覧を表示

11スループットの詳細グラフ

12表示の切り替えと通知

13

クラスタとは

ColdFusion Enterprise版で可能なマルチインスタンス（CF内に複数のインスタンスを登録・実行する）構成。
Administratorの「エンタープライズマネージャー」

複数のインスタンスを一つにまとめてクラスタ化も可能
14

ノードとは
個々のColdFusionサーバーを指す• クラスタに登録されていないColdFusionサーバー（インスタンス）がノードに一覧で表示される←ホスト名：cfwindowsのCFサーバー←ホスト名：MURAOKA-PCのCFサーバー←ホスト名：cflinux.samuraiz.co.jpのCFサーバー←ホスト名：WIN-6HK3UAQ25AUのCFサーバー
15

トポロジ
Webサーバー、DBなど、外部サービスとの接続形態を図式化してモニタリング

16トポロジの画面
 Webサーバー(Front側)、ColdFusionサーバー、データソースや外部サービス呼び出し(Back側)を図式化

17状態スコアとＡＲＴについて•

色で状態を表す
緑：70以上 正常
黄：30～70 注意が必要
赤：30未満 クリティカル
i を押すと状態スコアの詳細を確認可能
状態スコアは4つの項目とそれぞれの重み付けのもと計算
ART: 直近5分間の性能測定とベースライン(5秒:既定)の性能測定とを元に計算
18

（クラスタ環境）トポロジの画面
 クラスタ化されたCFインスタンスや、複数のWebサイトからCFサーバへの接続もまとめてモニタリング

19

コネクタ
WebサーバーとColdFusionサーバーとを連携するコネクタの状態をモニタリング

20

サイト（コネクタ）をモニタリング

21ビジー接続数の詳細グラフ

22平均応答時間の詳細グラフ

23

（クラスタ環境のみ）
CFインスタンスとの負荷の詳細グラフ

24

サイト負荷の割合の詳細グラフ

25

CF サーバー
ColdFusionサーバー、JVM、アプリケーションの状態をモニタリング

26

CFサーバーの状態をモニタリング
 平均応答時間・スループット・エラーの割合/数 … 続

27

バージョン情報などの確認や履歴の確認

28

[CFサーバー]-[CFの指標] 画面
 アップデートファイルサイズ、リクエスト待ちキューの平均数、キャッシュサイズ、CFThread … 続29データソースごとのオープンしている接続数、セッション数のカウントをモニタリング

30[CFサーバー]-[システム] 画面
 CPU使用率、メモリ使用量、ネットワークとディスクＩ/Ｏなど、サーバーの状態をモニタリング

31

[CFサーバー]-[ＪＶＭ] 画面 ヒープ/非ヒープサイズ、領域(Eden/Survivor/OldGen)、

ＧＣ回数・実行時間やJVM CPU利用率との比較、スレッドの情報など Javaの状態をモニタリング

32[CFサーバー]-[キャッシュ] 画面
 テンプレートやクエリキャッシュ、 <cfcache>やCache系

関数により生成されたキャッシュの一覧をモニタリング

33[アプリケーション] 画面（ノード） アプリケーション名 <cfapplication name="名前"> またはThis.name="名前" 単位のパフォーマンスをモニタリング

34

(クラスタ)[CFサーバー] 概要画面

 クラスタ全体の平均応答時間・スループット・エラー数・遅い処理・CFインスタンスの一覧とエラー割合をグラフ化

35

(クラスタ)[CFサーバー]-[アプリケーション] 画面

 クラスタ全体のアプリケーション単位のパフォーマンスをモニタリング

36

(クラスタ)[CFサーバー]-[インスタンス] 画面

 クラスタ内のColdFusionインスタンス単位で、平均応答時間やスループット、CPU使用率、メモリ等をモニタリング

37

データソース
データベースへの処理の状況をモニタリング

38データベース処理のモニタリング
 データソースの平均クエリ時間や秒間のクエリ数 … 続

39

低速なクエリの一覧や、ＳＱＬの分布など、データベース処理に関する情報をグラフ化

40

平均クエリ時間の詳細グラフ

41スループットの詳細グラフ

42

データソースの詳細画面

43

NoSQL データベース
MongoDB データベースのモニタリング

44API 呼び出しや低速なサービスなどに関する情報をグラフ化

45

46

外部サービス<cfhttp>, <cffile>などColdFusionから外部に処理を行うモニタリング

47

外部処理を行うCFタグをモニタリング
 CFHTTP, CFFTP, CFFEED, CFLDAP, CFMAIL,CFOBJECT などの平均実行時間や低速なサービス、呼び出しをモニタリング

48

[例] CFHTTP詳細グラフ

49

50

受信サービス
ColdFusionで公開している
REST, SOAP などのWebサービスをモニタリング

51

Restのサービス受信の例
 平均応答時間や低速な処理、ステータスコードやメソッドの割合などをモニタリング（他に SOAP, RPC）

52

平均応答時間の詳細グラフ

53

クラウドサービス
クラウドサービスの平均応答時間、低速なメソッド、応答などをモニタリング

54

55

さらなる CFサーバーの状態を調査 ①

コードプロファイラー
ColdFusionのすべてのトランザクションを監視し、応答時間や呼び出し回数など詳細情報を取得する

56

コードプロファイラとは
 指定された条件のもとリクエストの詳細な処理を監視し、変数やフロー、応答時間、メモリサイズなどを測定※プロファイリングの [開始 / 終了] はこの画面より行う

57

条件の指定 一般的に条件が緩いほど＆測定項目が多いほどCF
サーバーに負荷が掛かる
 メモリを測定する/しない サーバー全体の処理を計測 ←選択したアプリケーションを計測←指定したURLを計測
58

プロファイルの結果を表示

URLの一覧で測定済みの情報が表示

さらに選択したURLの処理の詳細を確認

59

注意点
 データ

 データストアで測定データを削除すると、関連するプロフ

ァイルのデータも消去される
 ダウンロード時のファイルはJSON形式。ファイルパスとタグ・関数、行番号や実行時間を含む
 ColdFusion Builderでデータをインポート、登録済みのプロジェクトと紐づけることもできる
 。。があまり実用的ではない。PMTの画面の方が見やすいかも

 その他

 測定が行えないタグ・関数がある <cfif>系、<cftry>系、<cfset>タグは測定できない
 関数は一部の計測に限られる
https://helpx.adobe.com/jp/coldfusion/performance-monitoringtoolset/code-profiler-coldfusion-performance-monitoring-toolset.html
60

設定
アラート・状態スコアの設定など、安定運用に向けての設定が可能※監視するCFサーバーの設定やＰＭＴの詳細設定などもここで行う

61

アラート機能の設定（例）アラート対象：
JVM
リクエスト
コネクタ
CPU など日次バッチなどを実行している環境
でのキルは注意62

コネクタの自動調整（IISのみ）
 大量のトラフィックに対して自動でプールサイズが増加する←プールサイズの90％がビジーになるとプールサイズが20％増加

 自動調整中は、プールサイズが自動的に増加し、IISの再起動は必要ない
63

状態スコアやベースラインの設定
 サーバー、または特定のアプリケーションによって設定を変更することが可能

64

③その他の機能

65

CFサーバーの詳細の情報を取得
 [CFサーバー]画面で「スレッドダンプ」や「ヒープダンプ」の取得が可能

 スレッドダンプはPMT画面で確認が可能（次ページ）

 ダウンロードも可能だがPMT用のため、Samuraiなどでは解析できない ヒープダンプはファイルサイズが格段に大きい CFサーバー側に出力されるため、ディスク不足等を招かないよう Javaや内部ライブラリなどの情報からCFとしての調査は出来ない

66

スレッドダンプの結果～概要～

67

スレッドダンプの結果～詳細～ グラフの項目を選択すると、項目ごとのスレッドダンプの詳細を確認可能

68

スレッドダンプ履歴のダウンロード
 スレッドダンプの履歴は[CFサーバー]の概要画面からダウンロードが可能

69

ガベージコレクションの実行
 [CFサーバー]の各画面に表示されている【GC】ボタンを押すことで、強制的にGCを実効GCを実行してヒープサイズの動きからメモリの状態を予測

70

.cfmページ処理を強制中断
 [CFサーバー]の「アクティブな監視」画面では処理に時間が掛かっているURLの一覧が表示。詳細確認とキルが可能

強制中断はタイミングによってはすぐに中断しない
基本的にはCF側で処理が行なわれている時に中断

71

④運用例

72

パフォーマンスを分析し状態を把握

ここで平均応答時間が伸びているのはナゼ？

73データベースの処理に時間が掛かっている？

74

データベースの処理は8秒だった。
サーバー処理で30秒以上も掛かっている別の項目でもさらに原因を調査

75

別の視点からも性能を調査

76

基本情報

呼び出し回数と処理時間

このクエリを呼び出しているページ

77

⑤インストール時の注意点

78

インストーラーについて
 PMTは専用インストーラーで提供

 使用しているColdFusionのバージョンに合わせてPMTをダウンロードする CF2018…PMT2018
 CF2021…PMT2021

 含まれるコンポーネント

 Performance Monitring Toolset (分析ツール: Javaベース)

 データストア

 (ElacticSearch: Javaベース)

 入手：「ColdFusion ダウンロード」で検索 https://helpx.adobe.com/jp/coldfusion/kb/coldfusion-downloads.html#cf2021_pmt

79必要スペック
計算・モニター

ＰＭＴ
データストアColdFusionとは別の独自サーバーでの稼働を強く推奨
 RAM: 最小構成8GB（16GB推奨）
 PMTとデータストアを分離する場合
 PMTのみ4GB
 データストアのみ4GB

 CPU : 4コア（8コア推奨）

 HDD: 50GB（100GB以上推奨）

 SSD推奨（データストアが常に動作）

Performance Monitoring Toolset デプロイメントガイド
https://helpx.adobe.com/jp/coldfusion/performancemonitoring-toolset/deployment-guide.html

80インストール時の注意①
 PMTダッシュボードへのアクセスの設定

 ブラウザを使用して、ダッシュボードへアクセスする
際の IP・ポートを指定する
 リモートからダッシュボードのアクセスを行う場合はホスト名またはIPアドレス・ポートを考慮する

 指定したポートに対するF/W設定も忘れないで行う

 後から変更する場合

 [PMT_root]/config/application.
config ファイルの設定を変更
81インストール時の注意②
 データストアの設定

 ColdFusionサーバーからの測定データの送信先
 リモートから接続可能なホスト名またはIPアドレス・ポートを指定する

 指定したポートに対するF/W設定も忘れないで行う

 後から変更したい場合

 [PMT_root]/config/application.
config ファイルの設定を変更

82インストール時の注意③
 Linux OSにPMTをインストールする前に以下を確認
 開いているファイルの最大数が 65537 以上であること
 コマンド ulimit -n 65536 を使用

 マップの最大数が 262145 以上であること

 コマンド sysctl -w vm.max_map_count=262144 を使用

 root以外の実行ユーザーを作成しておく83ColdFusionサーバー登録①
 初回起動時に自動検出ツールが起動する

ColdFusion ノードおよびクラスターの自動検出
https://helpx.adobe.com/jp/coldfusion/performancemonitoring-toolset/auto-discovery-nodes-clusters.html
84ColdFusionサーバー登録② 自動検出ではなかなか見つからない リモートのCFサーバーへのポートが空いていない 指定されているホスト名の名前解決ができない
 ネットワークやサブネットの違い等

 PMTとColdFusionとの間で行われる処理
PMT⇒ColdFusionの内部Webサーバー

1.

2.





ColdFusionサーバーの環境を確認
測定データをPMTのデータストアに送付するための通知

ColdFusionサーバ ⇒ PMTのデータストア
CFサーバーの測定データを送信85ColdFusionサーバー登録③
計算・モニター

受信側
ＰＭＴ

データストア

既定：8500ポート受信側

既定：9250ポート

 PMT⇒CF Administratorの「PerformanceMonitoring Toolset」の『監視設定』に指定したホスト名でPMTから接続できる？
 内蔵Webサーバーに接続するための F/W（既定:8500）が空いている？

 CF⇒データストア データストアのホスト名/IPアドレス・ポートに対してCFサーバーから接続できる？
 データストアに接続するためのF/Wが開放されてCFサーバーから接続できる？
86ColdFusionサーバー登録④ [サーバーを追加]ボタンで手動で登録する

 ColdFusion Administrator

87

⑤その他の注意点

88Updateの提供頻度
 Updateの提供頻度はサーバー製品に比べて少ない

 サーバー製品と違って、拡張機能・ツールなどは製品サポートの提供もされていない
 ColdFusionサーバーのUpdateと同じタイミングでPMTのUpdateが提供される場合がある
 PMT 2018 … Update 5
 PMT 2021 … Update 4

 PMT 2018の注意点

 インストール直後は、PMT内でのUpdateは行えない。Jarをダウンロードして手動で実行する必要がある

 PMT 2018 Update 3以降を適用することで PMT内からの Updateに対応している
89

コネクタの制限
不具合により、以下の場合、コネクタ（Webサーバーの情報）は取得できない
 PMT 2021 / 2018

 一部 Unix・MacOS環境のApacheと接続した環境で、長時間のリクエストの途中でApacheがクラッシュを起こしブラウザへの応答が中断する
 RedHat 7.x 、Ubuntu 20.04、SLES15、OSX 10.14/10.15で報告あり

 PMT 2021

 クラスタ化されたColdFusionサーバーに紐づくWebサーバー情報が送信されてこない90メール設定「設定」の [アラート] ＞ [設定] PMTサーバー自体のアラート設定
 対象となるクラスタやノードのアラート設定

91

メール設定時の注意点
 SSL接続が必要な場合[PMT_root]/config/jvm.config の java.argsの設定
 -Dmailserver.security=ssl または
 -Dmailserver.security=tls
 さらに追加する設定

 tlsの場合: -Dmail.smtp.starttls.enable=true
 プロトコルが必要な場合の例: -Dmail.smtp.ssl.protocols=TLSv1.2

 送信されるメールが文字化けする場合
 -Dmail.mime.charset=UTF-8

 PMT 2021 / 2018

 [接続を確認]で送信されるメールは文字化けする
 設定を変更する際は、パスワードも入れなおす Slack の Webhookのメッセージは文字化けする

92

その他 PMT不具合情報等
 PMT2021

 ServerのHealthスコアが75止まり（以下の原因による）
 CPU負荷の計測値が正しくない 一部の項目の計測値が取得できない

 PMT2018

 一部の設定項目の説明が表示されない
 https://tracker.adobe.com/#/view/CF-4214042

 PMTの Updateの日本語ページのDLリンクが404
 https://tracker.adobe.com/#/view/CF-4214041

 初期インストーラーはデータストアのメモリ指定が小さいので変更が必要

93

最後に
 最新情報はメーカーのコミュニティもチェック 最新情報等は開発元のコミュニティ（ColdFusion Forum）
 メーカーの公式ブログ（

https://coldfusion.adobe.com/blogs/ ） Slack (cfml.slack.com)

 無償ツールのため、メーカーサポートや個別パッチは提供されない

 不具合等を確認した時は、開発元のバグベースに登録 https://tracker.adobe.com

94

95