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

主会场_刘松_bperf 利用eBPF优化perf子系统的效率_报告PPT.pdf

上传人: 科*** 编号:713400 2025-06-08 29页 325.70KB

1、eBPF-交流研讨第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安bperf:利用eBPF优化perf子系统的效率第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安刘松2025年4月19日perf子系统简介perf子系统在数据中心场景遇到的问题bperf:bpf+perfbperf在容器监控场景的应用bperf在线程监控场景的应用第 三 届 e B P F 开 发 者 大 会 perf子系统简介perf子系统在数据中心场景遇到的问题bperf:bpf+perfbperf在容器监控场景的应用

2、bperf在线程监控场景的应用第 三 届 e B P F 开 发 者 大 会利用硬件计数器实现性能检测的功能计数功能:记录指定时间内的事件数量:指令数,缓存访问数采样功能:产生中断(NMI)采样程序栈bperf:用eBPF优化perf子系统的计数功能第 三 届 e B P F 开 发 者 大 会perf子系统简介硬件计数器第 三 届 e B P F 开 发 者 大 会perf子系统简介硬件计数器硬件计数器内核perf子系统性能监控工具perf,bpftrace性能监控守护进程sys_perf_event_open=perf_event用户进程自监控Per CPU perf_event监控指定C

3、PU的perf event需要更高权限Per task perf_event跟随用户线程的perf event在进程切换时加入当前CPU无需高级权限适用于用户进程自监控第 三 届 e B P F 开 发 者 大 会perf_event的上下文perf子系统简介 perf子系统在数据中心场景遇到的问题bperf:bpf+perfbperf在容器监控场景的应用bperf在线程监控场景的应用第 三 届 e B P F 开 发 者 大 会性能监控守护进程,24小时不间断监控用户进程进行自我监控各种维度的监控:全系统,容器,进程,线程,单个请求第 三 届 e B P F 开 发 者 大 会perf子系统

4、在数据中心场景1.不同维度监控同一指标,占用额外硬件计数器2.在上下文切换重新配置硬件计数器,增加上下文切换延迟3.需要很多perf_event,占用内存第 三 届 e B P F 开 发 者 大 会perf子系统在数据中心场景遇到的问题硬件计数器有限:每个CPU只有6到11个可用计数器需要监控的指标很多:指令数,时钟周期,缓存访问,内存访问,对常用指标,如指令数,需要监控各种维度。每个维度都需要独立的perf_event和硬件计数器。当perf_event多于硬件计数器。内核会使用基于中断的时分复用。精度降低,系统开销增大。#perf stat-e cycles,branch-misses,

5、iTLB-loads-C 3-I 1000#time counts unit events1.000154552 52,768,266 cycles (80.02%)1.000154552 104,864 branch-misses (80.02%)1.000154552 4,731 iTLB-loads (79.97%)第 三 届 e B P F 开 发 者 大 会perf子系统在数据中心场景遇到的问题针对容器(cgroup)的监控,使用per CPU perf_event,效率低每个被监控容器,每个CPU,每个指标,都需要单独的perf_event128个CPU,16个容器,2个指标(周期

6、数,指令数)-4096个perf_event512个CPU,64个容器,4个指标-131072个perf_event每次容器切换,需要重新设置硬件计数器,增加上下文切换延迟。第 三 届 e B P F 开 发 者 大 会perf子系统在数据中心场景遇到的问题perf子系统简介perf子系统在数据中心场景遇到的问题 bperf:bpf+perfbperf在容器监控场景的应用bperf在线程监控场景的应用第 三 届 e B P F 开 发 者 大 会让同一指标在不同维度的监控共享perf_event和硬件计数器在每个CPU开启perf_event和硬件计数器不同维度的监控共享perf_event和

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了eBPF技术优化Linux perf子系统的效率和在数据中心场景中的应用。关键点如下: 1. **perf子系统问题**:在数据中心中,perf子系统遇到的问题包括硬件计数器有限、上下文切换延迟、以及perf_event过多导致的内存占用等问题。 2. **bperf介绍**:bperf结合了eBPF和perf技术,优化了perf子系统的计数功能,特别是在容器监控和线程监控场景中。 3. **核心数据**:如128个CPU,16个容器,2个指标的情况下,传统的perf_event方法需要4096个perf_event,而bperf仅需256个,显著降低了资源消耗。 4. **上下文切换延迟**:bperf通过在上下文切换时读取硬件计数器,减少了重新配置硬件计数器带来的延迟。 5. **用户线程监控**:bperf提供了mmap+rdpmc方案,解决了系统调用带来的延迟问题,使得单次读取计数在100ns以下。 6. **开源实现**:bperf的实现代码已在GitHub上开源,包括内核源码和用户态工具,为性能监控提供了高效的解决方案。 综上,bperf利用eBPF技术提高了perf子系统的性能监控效率,解决了数据中心场景下的关键问题。
"eBPF如何优化perf计数?" "容器监控中bperf有何妙用?" "线程监控下bperf效能怎样?"
客服
商务合作
小程序
服务号
折叠