跳到主要内容
跳到主要内容

使用FE profiler生成火焰图

介绍

在doris 2.1.4及以上版本中,在fe部署目录${DORIS_FE_HOME}/bin中会存在一个profile_fe.sh脚本。该脚本可以利用async-profiler工具生成fe的火焰图,用来发现fe的瓶颈点。

备注

注:async-profiler工具目前仅支持Linux和MacOS系统,暂未支持Windows系统

使用案例如下

$ # 默认监听fe 10秒,生成火焰图
$ ${DORIS_FE_HOME}/bin/profile_fe.sh

$ # 设置监听fe 30秒,生成火焰图
$ PROFILE_SECONDS=30 ${DORIS_FE_HOME}/bin/profile_fe.sh

在运行上面的命令后,将会监听fe一段时间。在这段时间内我们需要将关键的查询重复地发送给这个fe,使得async-profiler可以收集fe的关键栈帧信息。 在收集栈帧信息完成后,脚本将会在${DORIS_FE_HOME}/log目录下生成一个html火焰图文件,通常来讲fe的瓶颈将会在火焰图中呈现为平顶山(又矮又宽)的形态,针对这些栈帧对应的代码,我们可以做性能的优化。

如下是火焰图的示例

在低版本fe中使用async-profiler

在2.1.4以下的版本中,需要手动下载两个文件

  1. ap-loader-all-3.0-8.jar下载至${DORIS_FE_HOME}/lib目录
  2. profile_fe.sh下载至${DORIS_FE_HOME}/bin目录
  3. 运行profile_fe.sh即可