《王张军--基于eBPF深度挖掘函数级调用时延.pdf》由会员分享,可在线阅读,更多相关《王张军--基于eBPF深度挖掘函数级调用时延.pdf(20页珍藏版)》请在三个皮匠报告上搜索。
1、性能工程-基于eBPF深度挖掘函数级调用时延第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m中 国 西 安第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m自我介绍王张军,Thoughtworks安全与系统统研发发事业业部,专注移动和嵌入式系统领域。擅长Android系统级性能优化,Linux内核开发,遗留系统重构与组件化,DevOps研发效能等。曾负责两家国内大型IT企业内部性能工程平台的建设,目前在一家车企负责智能座舱的性能和稳定性的相关工作。译作:现代C+
2、编程从入门到实践。第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m目录性能工程基于eBPF挖掘函数级调用时延工具的原理总结和感悟性能工程第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m中 国 西 安第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m性能工程软软件工程:将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化的方法应用于软件。(IEEE)性能工程:性能工程是一种
3、系统性的工程化方法,目标在于通过整合设计、构建工具链和研发工作流程,实现系统性能的标准化、规模化的改善和守护。什么是性能工程性能工程成熟度模型第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m性能工程建设的好处传统传统手动动分析19:15 新节点上线19:32 收到响应时间过长业务报警19:56 客户联系技术支持20:00 技术支持上线排查20:04-21:08 技术支持对多种指标进行排查,使用各种工具发现线程读io很高,通过监控发现有大量的snapshot堆积,初步建立怀疑点。20:10-20:30 技术支持同时对profil
4、ing 信息排查,抓取火焰图,但因为采样抓取过程中出问题的函数没有运行,没有看到有用的信息。21:10 通过删除 pod 的方式重启了某些节点之后,发现io并没有降下来。21:10-21:50 再次抓取火焰图,发现大平顶。22:04 采取操作22:30 集群完全恢复总耗时共2小时8分19:15 新节点上线19:32 收到响应时间过长业务报警19:56 客户联系技术支持20:00 技术支持上线排查20:04-20:40 技术支持通过性能平台对多种指标进行排查,从metrics的iotop发现某个线程读io很高。20:10-20:40技术支持同时对continuous profiling信息排查,
5、查看故障发生时刻的多个火焰图,与未发生故障的正常火焰图对比,发现问题所在。20:55 采取操作。21:21 集群完全恢复总耗时共1小时25分性能工程辅辅助分析TIDB 某次变更性能问题排查的复盘,从问题根因到提出有效操作:时间下降53.9%第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m性能工程建设的驱动-Continuous Profiling 2010年,Google 发布了一篇论文“A continuous profiling infrastructure for data centers”在这这篇论论文中提出,随着云计
6、算的普及和规模性增长,企业的成本也在增长,成本的增长驱使人们想尽办法提升资源的利用率和分配效率,所以了解应用程序的性能和利用率变得至关重要,因为即使是微小的性能改进也会转换为巨大的成本节约。而微小的性能改进需要做持续的性能观测。android-Perfetto Trace Processor第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m性能工程建设的落脚点-CI/CD/CP发布编译编译静态扫静态扫描描单元测单元测试试功能测功能测试试部署上部署上线线集成集成测测试试提交提交CP CP性能工程是主动动的,持续的和端到端的性能测试