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

分会场4_王子成 王震 刘璐_从内核到APP:eBPF驱动的跨层性能分析_报告PPT.pdf

上传人: 科*** 编号:713409 2025-06-08 18页 1.24MB

1、从内核到APP:eBPF驱动的跨层性能分析第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安荣耀终端|OS Kernel Lab 王子成/王震/刘璐作者介绍 王子成:博士毕业于南京大学计算机系,研究兴趣集中在OS内核安全、内存,漏洞防御缓解等,相关研究工作发表在Usenix Security,NDSS,ACSAC,软件学报等学术会议和期刊,并曾在CLK23,Linux Security Summit23/24,Blackhat23/24,Chinasys24报告研究工作进展 王震:荣耀,研究兴趣集中在OS内核调度、可观测性 刘璐:荣耀,研究兴

2、趣集中在终端设备OS基础性能维护和提升,AI4OS问题:如何更好呈现eBPF获取的内核观测数据?eBPF似乎只有观测的“超能力”,缺乏观测数据呈现的“超能力”?2025:eBPF统计kmalloc分配大小/次数2000:内核统计当前内存使用情况2025:eBPF统计kmalloc调用栈2025:eBPF生成火焰图(2011),汇总函数执行时间4eBPF数据的呈现 Counter V.S.TracingeBPF具备强大的表达能力,可以实现为上述任意类型,然而真正面对“性能诊断”时-Counter:数据量太少,无法精确定位-Tracing:事无巨细,需要花费大量精力寻找-最重要的:性能问题成因复杂

3、,最好能够结合上述全部数据,实现内核和APP的跨层联合分析2013:性能之巅可观测性工具分类 by Brendan GreggCounter通常为无符号整形,随着事件的发生数量增加,粗粒度但开销低,系统默认开启Tracing记录了每次事件的发生,细粒度但开销巨大,系统默认不开启5Perfetto任务时间片线程细节调度延迟CPU频率前台应用Android logPerfetto-谷歌新一代系统性能分析工具6PerfettoPerfetto 是一个平台级性能跟踪分析与展示工具,提供了-记录:系统级和应用级追踪的服务和库,支持本地和 Java 堆分析-展示:使用 SQL 分析追踪的库+基于网页的用户

4、界面eBPF+perfetto?perfetto目前不直接支持展示eBPF捕获的事件,因此我们将探索这个问题,进一步释放 eBPF潜力Perfetto-相机启动场景分析主线程渲染线程线程调度状态:运行、睡眠、等待调度、等待IO完成.Android关键事件帧渲染7eBPF+Perfetto:GC后段出现大量内存申请Perfetto 内存分配速度 GC内存申请主要集中在GC后段CompactionPhasePerfetto 内存分配速度 GC出现大量内存申请,峰值7258eBPF+Perfetto:缺页异常导致性能波动Perfetto UI新增#PF/内存分配tracing可观测性数据#filem

5、ap fault 读入导致D状态大量内存分配耗时超过10us#filemap fault 分配内存读入文件9eBPF+Perfetto:sched_ext FIFO调度情况OSBench create_files756程序被kwoker/0:1734抢占后,重新加入SCX全局队列等待调度执行Sched_ext simple FIFO 案例运行运行队列等待调度create_file线程10实现:Perfetto整体架构Producer Process:高效低开销获取追踪数据,支持多种数据源Tracing Ser vice:作为核心服务,负责管理追踪会话,协调数据的收集和存储Buffer:用于临时

6、存储追踪数据,确保数据在处理过程中的高效性和可靠性Protobuf:作为数据序列化格式,确保数据高效传输和存储Trace File:追踪数据以文件形式存储,便于后续分析和共享SQL:支持数据快速查询UI:提供可视化界面,用户可以通过它查看和分析追踪数据,帮助识别性能瓶颈data_sources:config name:linux.ftraceftrace_config ftrace_events:bpf_trace/*ftrace_events:ftrace/printdisable_generic_events:falsePerfetto开启eBPF相

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了如何利用eBPF技术获取内核观测数据,并通过Perfetto工具进行展示和分析。关键点如下: 1. eBPF具有强大的观测能力,但缺乏数据展示的“超能力”。 2. 提出了eBPF+Perfetto的解决方案,对内核观测数据进行跨层联合分析。 3. 通过Perfetto UI插件解析eBPF内核关键数据事件,如内存分配、调度情况等。 4. 面临挑战:容量规划、合理估计系统压力、控制内核事件输出频率,以避免性能失真和追踪数据丢失。 5. 实践效果:发现后台活跃申请内存导致相机启动性能恶化,识别相机启动阶段内存异常申请。 核心数据: - 内存分配速度:GC后段出现大量内存申请,峰值~725。 - #PF/内存分配追踪:#filemap fault读入导致D状态大量内存分配耗时超过10us。 未来计划:说服Linux上游约定一个eBPF-Perfetto解析协议,以便更好地支持eBPF观测数据在Perfetto中的展示。
"eBPF如何展示内核观测数据?" " Perfetto与eBPF结合的挑战有哪些?" "如何优化相机启动性能?"
客服
商务合作
小程序
服务号
折叠