当前位置:首页 > 报告详情

主会场_任玉鑫_基于eBPF的全系统PGO优化方案_报告PPT.pdf

上传人: 科*** 编号:713392 2025-06-08 20页 948.39KB

1、基于eBPF的全系统PGO优化方案第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安任玉鑫,华为,openEuler Valuable ProfessionalPGO:Profile Guided Optimization 有效的编译优化手段核心思想 数据越多,优化效果越好 数据约体现应用特性,优化针对性越强第 三 届 e B P F 开 发 者 大 会PGO背景工作流程 编译器在源代码插桩 运行插桩后的应用,并采集数据 根据采集到的数据,尝试相应优化技术 不断迭代重复,直到优化效果达标第 三 届 e B P F 开 发 者 大 会PGO背景

2、采集与优化的例子第 三 届 e B P F 开 发 者 大 会PGO背景函数调用频率函数调用依赖分支跳转情况数据采集代码布局函数内联循环展开优化手段 为什么需要PGO 编译阶段没有足够的应用运行时信息 很多优化不通用,需要在具体应用上尝试 PGO优势 极致性能 确定性优化,针对应用定制 自动化,避免手动尝试各种配置 PGO劣势 优化只针对单个应用环境,每次部署都需要重新优化 数据采集不全面,无法覆盖所有代码路径和程序输入 只能采集优化单个二进制,无法优化动态库第 三 届 e B P F 开 发 者 大 会PGO背景 无法采集优化应用间、应用与系统之间的交互,难以实现全系统的性能最优系统性能 交

3、互 中断 系统调用 通信 仅仅依靠编译器无法采集优化第 三 届 e B P F 开 发 者 大 会PGO背景 容器容器是云原生计算的基础设施,通过轻量、弹性、模块化等实现高资源利用率和高性能。第 三 届 e B P F 开 发 者 大 会容器IO启动容器OverlayFSLocal FS主机后端镜像镜像read/mmapRoot FS NamespaceImageLayersContainer PlatformRoot FS容器启动是重要性能指标现有方案是全量加载,但很多数据不需要,造成性能浪费AI时代,问题尤为凸显。Pytorch启动达分钟级!第 三 届 e B P F 开 发 者 大 会容

4、器IO启动流程容器主机OverlayFSLocal FS后端阶段 1:Deploy()获取镜像元数据阶段 2:Running()创建容器运行时,例如cgroup阶段 3:Ready()启动容器内服务应用LazyLoading镜像MetadataData ChunkData ChunkData Chunk.Page CachePrefetch Cache第 三 届 e B P F 开 发 者 大 会容器IO启动问题现有方案时延分解I/O行为DeployRunningReadyTotalI/O Amp.Net.Pkg.Full Image124.6s1.6s1.7s127.9s47.5X573KC

5、RFS1.8s1.2s24.1s27.1s1.8X99KNydus0.8s2.9s21.4s25.1s1.6X90KDADI0.6s2.6s17.0s20.2s3.1X171KDADI-Trace0.7s2.2s17.1s20.0s3.0X166K现有方案不足懒加载虽然加速了“Deploy”阶段,但是在“Ready”阶段引入大量开销IO放大和频繁网络IO带来不必要的性能开销性能瓶颈IO的数据量和次数操作系统IO处理和page cahe性能低效第 三 届 e B P F 开 发 者 大 会容器IO启动问题容器主机OverlayFSLocal FS后端阶段 1:Deploy()获取镜像元数据阶段

6、2:Running()创建容器运行时,例如cgroup阶段 3:Ready()启动容器内服务应用LazyLoading镜像MetadataData ChunkData ChunkData Chunk.Page CachePrefetch CachePGO无法优化多应用、多层次、多节点交互第 三 届 e B P F 开 发 者 大 会全系统级PGO方案进程调度抢占系统调用依赖IO请求分布系统数据行为采集文件系统网络协议栈内核优化内存布局多核并行应用优化第 三 届 e B P F 开 发 者 大 会基于eBPF全系统级PGO方案进程调度抢占系统调用依赖IO请求分布系统数据行为采集文件系统网络协议栈

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文介绍了基于eBPF的全系统PGO优化方案,该方案通过采集运行时数据,以指导编译优化,提升性能。关键点如下: 1. **PGO简介**:Profile Guided Optimization(PGO)是一种依据应用运行特征进行编译优化的技术,其核心思想是数据越多,优化效果越好。 2. **PGO的局限**:传统PGO只能优化单一应用,难以处理全系统级别的交互优化。 3. **容器IO启动问题**:现有方案在容器启动的“Ready”阶段引入大量开销,存在IO放大和网络IO性能开销问题。 4. **全系统级PGO方案**:提出基于eBPF的全系统级PGO方案,通过细粒度数据采集和内核与应用优化,实现系统级性能提升。 5. **性能数据**:实践表明,新的优化方案(FlacIO)使冷启动性能提升2.7倍,KV存储吞吐性能提升2.2倍,机器学习训练性能加速32%,弹性扩容效率提升55%。 6. **openEuler社区**:该方案由华为和openEuler社区推动,旨在通过开源创新平台,实现跨层级的整合优化。
"如何实现容器冷启动加速?" "全系统级PGO方案能带来哪些性能优势?" "eBPF技术在优化中扮演什么角色?"
客服
商务合作
小程序
服务号
折叠