サーバアプリケーションの動作を可視化
本連載では、オープンソースを使ったサーバサイドのプロファイル方法について、3回に渡り解説を行います。主に、JavaのWebアプリケーションを作成している開発者の方が対象となります。
第1回となる今回は「プロファイラとは」というタイトルで、プロファイラとは何か、どんなことができるのかを説明した上で、プロファイル環境と対象 となるサンプルアプリケーションのインストールまで進めていきます。紙面の都合上、実際にプロファイラを動作させるのは次回以降になりますので、ご了承く ださい。
プロファイラとは
プロファイラとは、アプリケーションの性能を解析するためのツールです。Webアプリケーション開発を進めていく上で、次のような問題に遭遇したことはないでしょうか。
- 極端に遅いリクエスト処理があるのだが、原因がわからない
- サーバを起動してしばらく経つと、アプリケーションの動作が重くなる
- Out Of Memoryエラーが発生する
- リクエストの多重度を増やすと、スループットが低下する
プロファイラはこういった問題を解決するのに非常に役立ちます。
プロファイラで取得できること
プロファイラを利用すると、一般的には以下のような指標が取得できます。
- メソッドの呼び出し回数
- メソッドの呼び出し時間
- メモリ使用量
- CPU使用量
- スレッドの状態
取得した情報により、処理時間がかかっているアプリケーションロジックやメモリの不正利用、スレッドの待ち状態がわかり、アプリケーションの問題を解決するのに役立ちます。
プロファイラによっては、このような指標をグラフィカルに表示することができます。