「見える化」でJavaシステムを診断する
Javelinテクノロジで取得したログからシステムに潜むパフォーマンス低下やシステム障害の芽を「見える化」します。
予期せぬ例外の発生、メモリリーク、データベースのテーブル・
フルスキャンを引き起こすSQLなどを即座に検出することができます。
Javelinテクノロジで取得されたシステム動作情報を元にして、性能問題の原因となる処理を自動的に発見します。
アプリケーションのコンポーネント毎の挙動を解析して、性能問題の危険性を一覧表示します。
性能問題を検出するルール(PerformanceDoctor検出ルール参照)の設定により、細やかな解析が可能です。
PerformanceDoctorには、性能問題以外にも様々なシステム障害の原因を検出するためのルールが多数用意されています。
これらの検出ルールを活用することで、デッドロックやメモリリークの発生、複数スレッドからの並行アクセスによる
データ破壊の危険性なども即座に発見することができます。
システムの問題点は、アプリケーションだけではなく、DBMSに潜んでいることもあります。
PerformanceDoctorは、DBMSの実行計画を自動的に取得/解析して、問題点を見つけ出すこともできます。
対応しているのは、Oracle、PostgreSQL、MySQL、SQL Serverです。
たとえば、テーブルのフルスキャン発生や結合回数を計測し、閾値を超えた時に警告を表示することができます。
また、実行計画から実行コストを計測して、閾値を超えた時に警告を表示できます。
PerformanceDoctor検出ルール一覧
| Javaプログラム | Javaアプリケーション内部でのデッドロック発生チェック | |||
| メモリリーク発生チェック | ![]() |
![]() |
![]() |
|
| 線形検索発生チェック | ||||
| 複数スレッドからの並行アクセスチェック | ||||
| Socketのリードタイムアウト未設定チェック | ||||
| フレームワークの重複初期化チェック | ||||
| メソッド処理時間の閾値チェック | ||||
| 同一メソッドの呼び出し回数閾値チェック | ||||
| メソッドのwait時間(sleep、wait など)の閾値チェック | ||||
| メソッドのI/O待ち時間の閾値チェック | ||||
| Threadスリープ回数/時間の閾値チェック | ||||
| Thread同期待ち回数/時間の閾値チェック | ||||
| デッドロックの発生チェック | ||||
| Threadのブロック時間の閾値チェック | ![]() |
|||
| Threadのブロック回数の閾値チェック | ![]() |
|||
| Threadの被ブロック時間の閾値チェック | ||||
| GC発生回数/時間の閾値チェック | ||||
| 通信量(バイトサイズ)の閾値チェック | ||||
| ファイルアクセス量(バイトサイズ)の閾値チェック | ||||
| Log4j の Error が出力されたかどうかのチェック | ||||
| ハンドリングされない例外の発生チェック | ||||
| JDBC | SQL実行回数の閾値チェック | |||
| SQL実行時間の閾値チェック | ||||
| 同一SQL実行回数の閾値チェック | ||||
| SQL | 大量SQL発行のチェック | |||
| SQL中の結合利用回数の閾値チェック | ||||
| SQL中のUNION句登場回数の閾値チェック | ||||
| SQL中のOR句登場回数の閾値チェック | ||||
| SQL実行計画中のテーブル・フルスキャン | ![]() |
|||
| SQL実行計画中のコスト閾値チェック |