Cryostat を使用したパフォーマンスメトリクスの取得

ユーザーは Cryostat を使用して、メモリアロケーションと CPU 使用率に関するパフォーマンスメトリクスを収集できます。

Cryostat について

Cryostat は、コンテナ化された Java アプリケーション向けの Java Flight Recorder ハンドリングです。

詳細については、Cryostat ウェブサイトをご覧ください。

これは、async profiling を使用していません。なぜなら、async profiling は OpenShift 内では利用できない (私の知る限り) ためです。したがって、レコーディングには Safepoint バイアス問題が発生します。「Profiling Java in a container」を参照してください。

Cryostat を開く

Cryostat はデフォルトでデプロイされています。

URL は isup.sh シェルスクリプトを実行すると表示されます。

Minikube

コマンド minikube ip192.168.39.39 を返したと仮定すると、コンソールは http://cryostat.192.168.39.39.nip.io で利用できます。

OpenShift

Keycloak がインストールされているプロジェクトのルートに移動します。cryostat にリストされている URL を開きます。

https://cryostat-aschwart-keycloak.apps.....openshiftapps.com

Java Flight Recorder レコーディングの作成

  • Cryostat インスタンスのウェブサイトを開きます。

  • メニュー項目 Recordings をクリックします。

  • ターゲット VM を選択します。

  • Create ボタンをクリックして新しいレコーディングを作成し、ダイアログに従います。

  • テンプレートとして、CPU およびメモリプロファイリング情報をキャプチャするために Profiling を選択します。

cryostat create

レコーディングのダウンロード

レコーディングが完了したら、直接ダウンロードするか、後でダウンロードするために Cryostat の永続ボリュームにアーカイブします。

cryostat download

Grafana へのアクセス

minikube を実行している場合、Grafana にアクセスするために追加の認証情報は必要ありません。OpenShift で実行している場合、Cryostat ドキュメントにパスワードの取得方法の詳細が記載されています

Java Flight Recorder レコーディングの分析

レコーディングを IntelliJ Ultimate (コミュニティエディションでは不十分です) で開くか、Java Mission Control (JMC) バージョン 8 を使用します。

IntelliJ Ultimate で開く場合は、Profiler ツールウィンドウを選択し、Open Snapshot ボタンを押します。Flame Graph タブまたは Method List タブのいずれかを選択します。右上隅で、ユーザーは CPU とメモリプロファイリングの結果を切り替えることができます。

JMC で開く場合は、メニュー項目 Method Profiling または Memory を選択します。残念ながら、Fedora のバージョン 8.2.1 では flame view が壊れているようで、単に空白です。それでも、メソッドのリストはいくつかの価値を提供します。