ColdFusion Server Monitor on ColdFusion 8 a.k.a Scorpio

ColdFusion MX 7の次のバージョンであるColdFusion 8ではサーバー監視機能が大幅に強化されます。Adobe MAX 2006のセッションUnlocking the ColdFusion Server Black Boxでその監視機能の画面・およびプレゼンテーションが行われ、その模様がBreezeで配布されています

主な監視機能は以下の通り。

  • サマリー
    • JVMメモリー利用状況
    • 平均リクエスト処理時間
    • 1秒あたりのリクエスト処理数
    • 現在処理中またはキューに入っているリクエスト数
    • 遅いアクティブリクエスト
    • 直近のエラー
  • Active Request Report
    • 現在のリクエストの状況
      • テンプレートパス
      • クライアントIPアドレス
      • スレッド名
      • 処理時間
      • CFMLとJavaのスタックトレース
    • CFMLスタックトレースを使うと…
      • デッドロックしているリクエストを探せる
      • 長時間ブロックされてるリクエストを探せる
  • 累積処理時間
    各CFMLテンプレートの累積処理時間が表示されるので、累積時間が長いテンプレートをチューニングすることでパフォーマンスアップできる
  • テンプレートキャッシュステータス
    キャッシュヒット率、キャッシュに入っているテンプレート数とおおよそのサイズがわかるので、ヒット率などを元にキャッシュに入れるテンプレート数を調節できる
  • 遅いクエリ
    • MySQLにも遅いクエリをログする機能はあるが、CF上でもログできるようになった
  • クエリのメモリ消費量
    どのクエリがどれぐらいメモリーを消費しているかを表示できる
  • 頻繁に走るクエリ
    頻繁に走っているクエリを表示できるので、それをチューニングするとパフォーマンスアップにつながる
  • クエリーキャッシュ
    • キャッシュヒット率、キャッシュされているクエリ数とそのおおよそのサイズ
    • キャッシュヒット率が低い場合、キャッシュに入れるクエリを増やす指針になる
    • クエリのサイズが大きい場合、他のキャッシュに入れるべきクエリが追い出されている可能性がある
    • データソース、おおよそのサイズ、テンプレート上の位置、クエリ名、実行回数、実行時間、SQLが把握可能
  • メモリー利用サマリー
    各スコープでのメモリー使用量がわかる
  • エラーとタイムアウトのトラッキング
    • エラーが起きたCFMLテンプレートとその位置、スタックトレースが把握可能
    • タイムアウトしたテンプレート、タイムアウトした回数、スタックトレースが把握可能
  • プロファイラ
    • プロファイラをONにしてCFMLを実行すると、遅かったCFMLタグや関数などを把握することができる
  • アラート
    • n個のスレッドがt秒以上実行されていたらアラートを発行することができる
    • t秒以上リクエストのレスポンスにかかっていたらアラートを発行することができる
    • アラートの際に任意のCFCの関数を呼び出すことが可能
    • emailで通知することも可能
  • そのほか
    • アクティブセッションモニタリング
    • アクティブクエリモニタリング
    • データベースのコネクションプーリングステータス

なお、これらの監視機能はAPIがFlash Remoting経由で公開されることになっており、ビルドインのモニター画面以外にも自作のモニター画面などを作ることが可能です。

プレゼンをみてもわかるとおり、他のPerlやPHPなどで提供されている監視機能よりもかなり高度なものが提供される予定であり、高負荷環境でのチューニングがかなりしやすくなりそうです。プロファイリング&チューニングは昨今のWebアプリケーションではほぼ必須なのであり、それがしやすくなるという点でColdFusionを選択することも増えるのではないでしょうか。

Leave a Reply

Your email address will not be published. Required fields are marked *