《分会场4_王子成 王震 刘璐_从内核到APP:eBPF驱动的跨层性能分析_报告PPT.pdf》由会员分享,可在线阅读,更多相关《分会场4_王子成 王震 刘璐_从内核到APP:eBPF驱动的跨层性能分析_报告PPT.pdf(18页珍藏版)》请在三个皮匠报告上搜索。
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相