■メソッドサンプリング機能とは
一定の間隔で、メソッドの実行情報(どのメソッドが実行されているか)を示す機能です。
メソッドサンプリング中の他パフォーマンスデータ採取の禁止
メソッドサンプリング実行中にタブ操作により他のパフォーマンスデータ採取を行わないでください。
他のパフォーマンスデータ採取処理の発生により、正しいメソッドサンプリングの結果採取ができなくなります。
特にヒープ分析と同時に操作しないようにしてください。
メソッドサンプリング操作中にjconsoleの出力ウィンドウが表示された場合
メソッドサンプリング操作時、Java監視機能がエラーを検出するとjconsoleの出力ウィンドウを表示する場合があります。
jconsoleの出力ウィンドウには、エラーを検出した際のException名、エラーメッセージ、Exceptionが発生した時のスタックトレースを表示します。
メッセージの意味、必要な対処は“A.5.12 メッセージ”を参照してください。
◆メソッドサンプリング機能の選択
「メソッドサンプリング」のタブを選択(クリック)することでメソッドサンプリングの画面が表示され、操作が可能な状態になります。
◆メソッドサンプリング機能でできること
メソッドサンプリングの画面からは、次の操作ができます。
メソッドサンプリング結果の表示
メソッドサンプリング結果の保存
■メソッドサンプリング結果の表示
メソッドサンプリングの間隔、トレースの深さを設定します。
現在の設定値は、メソッドサンプリングの画面内に「サンプリング間隔」と「トレースの深さ」として表示しています。
値を変更する場合、次の手順で変更を行います。
[設定]ボタンを押します。
“設定”ダイアログボックスが表示されます。
※[設定]ダイアログボックスでは、画面上に表示されたメソッドサンプリング結果をファイルに出力するロギング機能の指定も行えますが、ここでは説明を省略します。“ロギング”機能に関しては、“■メソッドサンプリング結果の保存”を参照してください。
“サンプリング間隔”を設定します。
変更可能なサンプリング間隔は10ミリ秒/50ミリ秒/100ミリ秒/500ミリ秒/1秒の5通りです。
サンプリング間隔のデフォルトは50ミリ秒です。
サンプリング間隔を変更する必要が無い場合、トレースの深さを設定します。
“サンプリング間隔”を操作します。
プルダウンの一覧内からサンプリング間隔とする時間を選びます。
“トレースの深さ”を設定します。
変更可能なトレースの深さは1から65535です。
トレースの深さのデフォルトは4です。
トレースの深さを変更する必要が無い場合、メソッドサンプリングを開始します。
“トレースの深さ”を操作します。
トレースの深さを入力します。
キーボードから直接数値を入力するかスピンボックスを操作してください。
“設定”ダイアログボックスの操作はメソッドサンプリング開始前
“設定”ダイアログボックスからサンプリング間隔、トレースの深さの変更は、メソッドサンプリングの開始前に行うことが可能です。
開始後は、[設定]ボタンがグレー表示され、ボタンを操作することができなくなります。
サンプリング間隔は表示の更新間隔ではありません
メソッドサンプリング結果の表示は、一定の間隔で更新されます。この間隔は、サンプリング間隔に指定した時間ではありません。
メソッドサンプリング結果の表示の更新間隔は、jconsoleのintervalオプションで設定します。
intervalオプションのデフォルトは4秒間隔であり、Java監視機能も4秒間隔で更新されます。
“トレースの深さ”の指定は監視対象Javaプロセスのパフォーマンスに影響を与えます
トレースの深さは1~65535まで指定できますが、この数値を大きく(トレースを深く)指定するほど、監視対象のJavaプロセスのパフォーマンスに影響を与えます。
監視環境を検討し、過度な数値での測定を行わないようにしてください。
メソッドサンプリングを開始します。
[開始]ボタンを押します。
メソッドサンプリングを開始すると次のボタンの表示に変更されます。
ボタン名称 | 開始前 | 開始後 |
---|---|---|
[開始]ボタン | 活性状態(選択可能) | グレー表示(選択不可能) |
[一時停止]ボタン | グレー表示(選択不可能) | 活性状態(選択可能) |
[終了]ボタン | グレー表示(選択不可能) | 活性状態(選択可能) |
【メソッドサンプリング開始前】
【メソッドサンプリング開始後】
表示領域にメソッドサンプリングの結果が表示されます。
図A.2 メソッドサンプリングの結果表示例
負荷によるメソッドサンプリング結果表示への影響
メソッドサンプリングの結果の表示は、一定の間隔で更新処理を行っています。
しかし、測定対象としているコンテナ(Java VM)の負荷、コンテナとjconsole間の通信状態、あるいはjconsole自体の負荷に影響を受け一定間隔の更新が行われないことがあります。
同じトレースの同じメソッドが複数回表示される場合があります
メソッドサンプリングの結果の表示を行っている時、同じトレースの同じメソッドが複数表示されることがあります。
これは、Javaソースとして一行であっても、バイトコード命令として複数行の命令になるためです。
メソッドサンプリングの表示更新を一時停止します。
今表示されているメソッドサンプリングの結果を画面上で分析している間、あるいはCSVファイルに出力させる時など、今の表示を保ちたいことがあります。そのようなときに表示更新を一時停止します。(表示更新を一時停止するだけであり、メソッドサンプリングの処理は停止しません。メソッドサンプリングの停止は[終了]ボタンを押すことで行ってください。)
なお、ロギング機能でロギングを行う設定をしている([設定]ダイアログで“ロギングを有効にする”を選んでいる)場合、メソッドサンプリングの表示更新を一時停止中は、ロギングが行われません。
メソッドサンプリングの表示更新を一時停止するためには、[一時停止]ボタンを押すことで行ってください。
[一時停止]ボタンを押すと次のボタンの表示に変更されます。
ボタン名称 | 一時停止前 | 一時停止後 |
---|---|---|
[開始]ボタン | グレー表示(選択不可能) | グレー表示(選択不可能) |
[一時停止]ボタン | 活性状態(選択可能) | [再開]ボタンに変更され、活性状態(選択可能) |
[終了]ボタン | 活性状態(選択可能) | 活性状態(選択可能) |
【一時停止前】
【一時停止後】
メソッドサンプリングの表示更新を一時停止から再開します。
一時停止させているメソッドサンプリング結果の表示を再開させます。
再開には、[再開]ボタンを押します。
[再開]ボタンを押すと次のボタンの表示に変更されます。
ボタン名称 | 一時停止前 | 一時停止後 |
---|---|---|
[開始]ボタン | グレー表示(選択不可能) | グレー表示(選択不可能) |
[再開]ボタン | 活性状態(選択可能) | [一時停止]ボタンに変更され、活性状態(選択可能) |
[終了]ボタン | 活性状態(選択可能) | 活性状態(選択可能) |
【再開前】
【再開後】
再開時、メソッドサンプリングの結果の表示およびロギングを行っている([設定]ダイアログで“ロギングを有効にする”を選んでいる)場合は、再開後最初のメソッドサンプリングが行われるまで変更されません。
▽N(Nは数字)はメソッドサンプリング採取のタイミング
▲N(Nは数字)はメソッドサンプリングの結果として表示されているメソッドサンプリングの回数
上の例では、一時停止後、メソッドサンプリングは2回(3と4)採取されていますが、表示は一時停止前(2)の内容がそのまま表示されます。
(メソッドサンプリング4と5の間で)再開を押しましたが、再開後、最初のメソッドサンプリングが実施されるまで(網掛けの間)、表示は一時停止中と同じ(2)表示が続きます。
再開後、最初のメソッドサンプリング(5)が実行されると表示も変更(5)されます。
メソッドサンプリングを終了します。
メソッドサンプリングの採取を終了させ、結果の表示を停止します。
終了には、[終了]ボタンを押します。
[終了]ボタンを押すと次のボタンの表示に変更されます。
ボタン名称 | 終了前 | 終了後 |
---|---|---|
[開始]ボタン | グレー表示(選択不可能) | 活性状態(選択可能) |
[一時停止ボタン][再開]ボタン | 活性状態(選択可能) | [一時停止]ボタンに変更され、グレー表示(選択不可能) |
[終了]ボタン | 活性状態(選択可能) | グレー表示(選択不可能) |
【終了前】
(一時停止中)
【再開後】
[終了]ボタンは、メソッドサンプリングの開始後、いつでも押すことができます。
また、[終了]ボタンを押さずにjconsoleを終了した場合、メソッドサンプリングは継続されます。
メソッドサンプリング中のjconsoleの再起動
メソッドサンプリングを開始したまま(メソッドサンプリングの[終了]ボタンを押さずに)、jconsoleを終了させた場合、メソッドサンプリングの採取は継続されます。
この状態でjconsoleを再度起動し、同一の測定対象コンテナに接続した場合、メソッドサンプリングは継続しているためボタンは、以下の状態になります。
また、メソッドサンプリング結果の再表示も行われます。
■メソッドサンプリング結果の保存
メソッドサンプリング結果を保存する方法には、次の2つの方法があります。
現在表示されているメソッドサンプリングの結果を保存する
メソッドサンプリングの表示結果をロギングする
◆現在表示されているメソッドサンプリングの結果を保存する
現在表示されているメソッドサンプリングの結果をCSV形式でファイルに保存します。
保存したいメソッドサンプリングの結果が表示されている状態で、[CSV形式で保存する]ボタンを押します。
[CSV形式で保存する]ボタンを押すと“保存”ダイアログボックスが表示されます。
以下の手順で保存を行います。
データを保存するフォルダに移動
“ファイル名:”に保存するファイル名を入力
[保存]ボタンを押す
[取消し]ボタン、あるいは[×]ボタンを押すと保存処理を行わずに“保存”ダイアログボックスが終了します。
なお、保存したファイルのデータ項目の意味は、“◆ファイル保存されたCSV形式”を参照してください。
メソッドサンプリングの結果が表示されていない状態で、[CSV形式で保存する]ボタンを押すと以下のメッセージが表示され、保存処理を行わずに終了します。
メソッドサンプリング結果の保存は、表示更新を一時停止または中止してから
[CSV形式で保存する]ボタンを押し“保存”ダイアログボックスを表示している間もメソッドサンプリングは継続されています。
そのため、“保存”ダイアログボックスの操作を行っている間にも、メソッドサンプリングの結果の表示は更新されてしまう可能性があります。
目的のメソッドサンプリング結果を確実に保存するために[一時停止]ボタンあるいは[終了]ボタンを押し、メソッドサンプリングの結果の表示が更新されないようにした後、[CSV形式で保存する]ボタンを押しメソッドサンプリング結果の保存操作を行ってください。
◆メソッドサンプリングの表示結果をロギングする
メソッドサンプリングの開始時から表示される結果を自動的にテキスト形式でファイルに保存します。
メソッドサンプリング開始前に、[設定]ダイアログからロギングの設定を行います。
[設定]ボタンを押します。
“設定”ダイアログボックスが表示されます。
“ロギング”を設定します。
“ロギングを有効にする”チェックボックスを指定します。
“ロギングを有効にする”チェックボックスがチェックされていないと、“ディレクトリ”はグレー表示され、ディレクトリを入力することができません。
“ディレクトリ”にロギングファイルを作成するディレクトリを指定します。
“ディレクトリ”の指定には、直接キーボードからディレクトリ名を入力する他、[参照]ボタンを押し、“開く”ダイアログボックスからディレクトリを選ぶことも可能です。