尝试自动化 java 任务控制,可能吗?

trying to automate java mission control, is it possible?

是否可以自动执行 java 任务控制,每小时将 1 分钟的飞行记录转储到文件夹中?

例如:服务器是 运行 一个 24/7 应用程序,我希望每小时将 .jfr 文件自动转储到一个文件中

有一个执行 jcmd JFR.dump 的 cronjob,至少 JDK 11 它有 begin/end 个参数。

$ java -XX:StartFlightRecording MyApp

然后创建转储脚本,例如

jcmd MyApp JFR.dump filename=/dumps begin=-1m

然后添加一个cronjob

$ crontab -e.

脚本条目:

*/60 * * * * /scripts/dumpjfr.sh

对于旧版本,如果您想控制转储的量,您可能必须使用 FlightRecorder MXBean,或者使用 -XX:StartFlightRecording=maxage=1m 将记录的最大长度设置为一分钟。如果你想保留更长的历史记录,可以用不同的maxage开始多次记录。

参见示例http://isuru-perera.blogspot.com/2015/02/java-flight-recorder-continuous-recordings.html