应用程序分析

每个独立的JobManager,TaskManager,HistoryServer和zookeeper守护重定向stdoutstderr与一个文件.out名的后缀,并写入内部记录到一个文件.log后缀。用户在env.java.opts,中配置的Java选项env.java.opts.jobmanagerenv.java.opts.taskmanager同样可以使用脚本变量定义日志文件,FLINK_LOG_PREFIX并将选项括在双引号中以便进行后期评估。使用的日志文件FLINK_LOG_PREFIX与默认文件.out.log文件一起旋转

使用Java Flight Recorder进行性能分析

Java Flight Recorder是Oracle JDK中内置的分析和事件收集框架。Java Mission Control是一套先进的工具,可以对Java Flight Recorder收集的大量数据进行高效,详细的分析。配置示例:

  1. env.java.opts: "-XX:+UnlockCommercialFeatures -XX:+UnlockDiagnosticVMOptions -XX:+FlightRecorder -XX:+DebugNonSafepoints -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=${FLINK_LOG_PREFIX}.jfr"

使用JITWatch进行分析

JITWatch是Java HotSpot JIT编译器的日志分析器和可视化工具,用于检查内联决策,热方法,字节码和汇编。配置示例:

  1. env.java.opts: "-XX:+UnlockDiagnosticVMOptions -XX:+TraceClassLoading -XX:+LogCompilation -XX:LogFile=${FLINK_LOG_PREFIX}.jit -XX:+PrintAssembly"