尝试自动执行Java任务控制,这可能吗?

时间:2019-03-20 09:15:17

标签: java jmc jfr

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

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

1 个答案:

答案 0 :(得分:1)

具有一个执行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

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

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