flink 配置火焰图追踪堆栈的信息
火焰图主要是用来跟踪堆栈线程重复多次采样而生成的,每个方法的调用表示为一个长方形,长方形的长度和在采样中出现的次数成正比。
图的解释;
y轴: 表示调用栈,每一层都是一个函数,调用栈越深。火焰的颜色越高,顶部就是正在执行的函数,下方都是父函数。
x轴: 表示的是抽样数,如果一个函数在x轴占据的函数宽度越宽,表示该函数在抽样到的次数就是越多,既是执行时间长。
火焰图主要是看顶部的哪个函数占据的宽度最大,表示该函数可能存在性能问题。
火焰图分类:
ON-CPU:基于线程在CPu上执行消耗的时间采样,查看线程在CPu上花费的时间,
OFF-CPU:基于线程在CPU上(IO,锁,中断等原因)上消耗的时间。可以直观的查看线程花费在阻塞上的时间分布
具体的配置信息:
在flink-conf.yml文件中配置
rest.flamegraph.enabled: 默认值: false 说明:是否开启火焰图
rest.flamegraph.cleanup-interval 默认值:10min 说明:统计信息的缓存清除时间
rrest.flamegraph.delay-between-samples 默认值:50 ms 说明:构建 FlameGraph 的单个堆栈跟踪样本之间的延迟。
rest.flamegraph.num-samples 默认值:100 构建flamegraph的采样数
rest.flamegraph.refresh-interval 默认值:1min 说明:火焰图刷新的时间间隔
rest.flamegraph.stack-depth 默认值:100 说明:创建FlameGraphs 的堆栈跟踪的最大深度