应用程序分析
使用Apache Flink进行自定义日志记录概述
每个独立的JobManager,TaskManager,HistoryServer和zookeeper守护重定向stdout
和stderr
与一个文件.out
名的后缀,并写入内部记录到一个文件.log
后缀。用户在env.java.opts
,中配置的Java选项env.java.opts.jobmanager
,env.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收集的大量数据进行高效,详细的分析。配置示例:
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编译器的日志分析器和可视化工具,用于检查内联决策,热方法,字节码和汇编。配置示例:
env.java.opts: "-XX:+UnlockDiagnosticVMOptions -XX:+TraceClassLoading -XX:+LogCompilation -XX:LogFile=${FLINK_LOG_PREFIX}.jit -XX:+PrintAssembly"