Blog

JFR のスタックトレースはデフォルトで64

JFR では Stacktrace を取得する処理があるが、デフォルトのスタック取得深度は 64 である。 現代のウェブアプリケーションではフレームワーク側で64スタックぐらい余裕で消費しているので、これは増加させる必要がある。あまり大きく設定すると、メモリを圧迫する可能性があるので、できるだけ小さく、かつ各アプリケーションで必要なぶんなスタックの深さを指定するのが良い。

datadog の agent では、256 を設定させている。 https://docs.datadoghq.com/ja/tracing/profiler/enabling/java/

JFR の設定ファイルの中で、stackdepth を指定できる方法がないかと調べたが見当たらない。

2016 年の報告では、G1GCのときに stachdepth を深くしたら遅くなったという報告があるが、今だったらカイゼンされてたりしないのかなぁ。と思ったりする。 https://blogs.oracle.com/poonam/g1-and-flight-recorders-xx:flightrecorderoptionsstackdepth-option