试图自动化Java任务控制,这是可能的



是否有可能自动化Java任务控件每小时将1分钟的飞行记录转换为文件夹?

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

具有执行jcmd JFR.dump的cronjob,至少对于JDK 11,它具有开始/结束参数。

$ 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,或将录音的最大设置为一分钟。如果您想保留更长的历史记录,可以从不同的Maxage开始多个录音。

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

最新更新