当前位置: 首页 > news >正文

Apache Gluten性能监控工具:如何实时追踪原生执行引擎指标

Apache Gluten性能监控工具:如何实时追踪原生执行引擎指标

【免费下载链接】glutenGluten is a middle layer responsible for offloading JVM-based SQL engines' execution to native engines.项目地址: https://gitcode.com/GitHub_Trending/glu/gluten

Apache Gluten是一个中间层组件,负责将基于JVM的SQL引擎执行卸载到原生引擎,从而显著提升大数据处理性能。为了确保这一过程的稳定性和高效性,Gluten提供了全面的性能监控工具,帮助用户实时追踪原生执行引擎的关键指标。本文将详细介绍如何配置和使用这些工具,轻松掌握Gluten的运行状态。

一、Gluten UI:直观的Web监控界面

Gluten UI是集成在Spark Web UI中的专用监控页面,提供了Gluten执行状态的可视化展示。通过它,用户可以一目了然地查看查询执行情况、原生节点数量和回退节点数量等关键信息。

启用Gluten UI

Gluten UI默认是启用的,如需确认或修改,可通过以下配置:

spark.gluten.ui.enabled=true

该配置项定义在gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala文件中,确保在Spark配置中正确设置即可开启这一功能。

Gluten UI主要功能

  1. 构建信息展示:显示Gluten后端类型、版本、构建时间等基础信息。
  2. 查询列表:展示所有通过Gluten执行的查询,包括SQL语句、物理计划和执行状态。
  3. 原生节点统计:统计每个查询中使用的原生执行节点数量和回退节点数量,帮助识别性能瓶颈。

二、指标框架:深入了解执行细节

Gluten的指标框架负责将原生执行引擎的指标映射到Spark SQL指标,提供了细粒度的性能数据。这一过程主要包括三个步骤:原生代码树化、JSON解析和Spark计划树化。

指标映射流程

  1. 原生代码树化WholeStageResultIterator::getOrderedNodeIds将Velox计划转换为有序节点ID列表。
  2. JSON解析:Scala代码将原生指标JSON payload解析为JList[OperatorMetrics]
  3. Spark计划树化MetricsUtil.treeifyMetricsUpdaters将Spark物理计划转换为指标更新器树,消费原生指标。

详细的指标映射逻辑可参考docs/developers/MetricsFramework.md文档。

关键指标类型

Gluten监控的关键指标包括:

  • 执行时间:CPU时间、墙钟时间等。
  • 内存使用:峰值内存、分配内存等。
  • 数据量:输入行数、输出行数、溢出数据量等。
  • 操作计数:哈希表探针数、排序比较数等。

三、内存分析工具:追踪内存使用

内存管理是原生执行引擎性能优化的关键。Gluten提供了内存分析工具,帮助用户深入了解内存分配和使用情况。

内存分析数据来源

Gluten的内存指标主要来自以下几个方面:

  1. Velox内存分配器:如StdMemoryAllocatorMallocAllocator等。
  2. 任务上下文:每个任务的内存使用情况。
  3. 算子级别:各原生算子的内存消耗。

使用内存分析工具

通过设置以下配置,可以启用详细的内存分析:

spark.gluten.sql.columnar.backend.velox.queryTraceEnabled=true spark.gluten.sql.columnar.backend.velox.queryTraceDir=/path/to/trace/dir

这些配置将生成详细的内存使用日志,帮助定位内存泄漏和优化内存使用。

四、Trace Viewer:可视化执行流程

Trace Viewer是一个强大的工具,用于可视化Gluten的执行流程和性能瓶颈。它以时间线的形式展示各个事件的发生顺序和持续时间,帮助用户直观地识别执行过程中的瓶颈。

生成Trace数据

要生成Trace数据,需要设置以下配置:

spark.gluten.sql.columnar.backend.velox.queryTraceEnabled=true

执行查询后,Trace数据将被写入指定的目录。然后,您可以使用Chrome浏览器的chrome://tracing功能加载这些数据,进行可视化分析。

Trace Viewer主要功能

  1. 时间线展示:以不同颜色展示各个事件的时间分布。
  2. 性能指标:显示CPU使用率、内存使用、I/O操作等关键指标。
  3. 事件详情:点击事件可查看详细信息,如函数调用栈、参数等。

五、性能调优实践

结合Gluten的监控工具,我们可以进行有针对性的性能调优。以下是一些常见的调优场景:

1. 识别回退节点

在Gluten UI中,如果发现某个查询有较多的回退节点(Num Fallback Nodes),可能是因为该查询包含Gluten不支持的算子或数据类型。可以通过查看查询的物理计划,定位不支持的部分,并考虑替换为支持的算子或升级Gluten版本。

2. 优化内存使用

通过内存分析工具,如果发现某个算子的内存使用异常高,可以尝试调整以下配置:

spark.gluten.sql.columnar.backend.velox.preferredBatchBytes=16777216 spark.gluten.sql.columnar.maxBatchSize=4096

这些配置可以调整批处理大小,从而优化内存使用。

3. 分析执行瓶颈

使用Trace Viewer,如果发现某个操作的执行时间过长,可以进一步分析其原因。例如,如果排序操作耗时较长,可以考虑增加排序缓冲区大小:

spark.shuffle.file.buffer=64k

六、总结

Apache Gluten提供了全面的性能监控工具,包括直观的Web界面、详细的指标框架、深入的内存分析和可视化的执行追踪。通过这些工具,用户可以实时了解Gluten原生执行引擎的运行状态,快速定位性能瓶颈,进行有针对性的优化。无论是新手还是有经验的用户,都能通过这些工具充分发挥Gluten的性能优势,提升大数据处理效率。

要开始使用Gluten的性能监控工具,只需按照本文介绍的方法配置相关参数,然后通过Spark Web UI或Trace Viewer等工具查看监控数据。随着对这些工具的深入使用,您将能够更加熟练地优化Gluten的性能,为您的大数据处理任务提供更强的支持。

【免费下载链接】glutenGluten is a middle layer responsible for offloading JVM-based SQL engines' execution to native engines.项目地址: https://gitcode.com/GitHub_Trending/glu/gluten

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/3689538.html

相关文章:

  • 从入门到精通:MVVM Dialogs核心组件详解与实战
  • Citra模拟器完整指南:在电脑上玩转3DS游戏的终极方案
  • 【AI视频变现避坑指南】:已踩过87次雷的资深团队总结——3类必删账号、4种封号话术
  • RestaurantAppUIKit架构设计:从数据模型到状态管理的完整实现
  • WzComparerR2终极指南:快速掌握游戏资源解析与WZ文件查看技巧
  • PDF文件瘦身终极指南:免费开源工具pdfsizeopt让你的PDF文件体积减少70%
  • HttpRepl常见问题解决:新手必知的10个调试技巧
  • Conflux-Rust核心功能揭秘:EVM兼容与智能合约执行深度探索
  • Word Embeddings实战:用Meta训练和应用高质量词向量模型
  • Stacker完全指南:如何高效管理AWS CloudFormation Stack的终极工具
  • TMS320C55x DSP时序参数深度解析:从复位、中断到McBSP与I2C的硬件设计指南
  • Windows系统VC运行库已安装却报错?深度解析与系统化解决方案
  • 免费围棋AI训练平台KaTrain:如何用AI快速提升你的围棋水平
  • UnityExplorer:游戏运行时调试的终极解决方案 - 实时探索与修改Unity游戏
  • 被动防火门国标技术参数及应用场景
  • 【2024 AI趋势预测权威报告】:基于127家头部机构数据的5大颠覆性拐点预警
  • 300 平方米多功能厅音响扩声设备选型实战指南
  • 从JUnit 4到JUnit 5:otj-pg-embedded测试规则与扩展全解析
  • 如何打造高效个人品牌的技术人简历
  • FLAC3D在岩土工程边坡稳定性分析中的实战应用
  • 多核DSP外围接口硬件设计:从GPIO、EMAC到SRIO的信号完整性实战
  • 让边缘计算不再“内存焦虑”:一条推文带你看懂嵌入式Swap虚拟内存实操
  • Windows风扇控制终极指南:如何用FanControl实现静音高效散热
  • QMK Toolbox:3步完成机械键盘固件刷写的终极指南
  • xmastree2020:500 LED圣诞树的3D坐标驱动动画全解析
  • 影视级AI视频平台的技术突破与应用实践
  • GameZone核心技术栈详解:HTML5 Canvas、CSS动画与JavaScript游戏逻辑实现
  • 10个最受欢迎的README Jokes主题推荐,总有一款适合你
  • Kali Linux中OpenVAS漏洞库更新失败的五步诊断与修复指南
  • Llama3-8B LoRA微调模型评估与部署全流程