《刘恺--eBPF与Golang Profiling:阿里云的探索与实践.pdf》由会员分享,可在线阅读,更多相关《刘恺--eBPF与Golang Profiling:阿里云的探索与实践.pdf(21页珍藏版)》请在三个皮匠报告上搜索。
1、eBPF 与 Golang Profiling 阿里云的探索与实践第二届 eBPF开发者大会w w w.e b p f t r a v e l.c o m刘恺(千陆)2024-04-13第 二 届 e B P F 开 发 者 大 会个人简介刘恺花名千陆,阿里云高级研发工程师,目前负责云原生可观测团队 eBPF 基础设施。持续深耕监控及可观测领域,在可观测方案架构及落地方面有着多年实践经验与深刻见解。目前,作为eBPF探针及K8s监控的研发负责人,积极探索容器可观测及关联场景,为企业提供开箱即用的可观测产品与服务。第 二 届 e B P F 开 发 者 大 会1.Profiling 与 Gola
2、ng 2.Continuous Profiling3.Golang Runtime 诊断第 二 届 e B P F 开 发 者 大 会为什么需要 Profiling?OPTIMAZATIONOPTIMAZATIONINCIDENTSINCIDENTS第 二 届 e B P F 开 发 者 大 会Golang Profiling 生态ProfilerMethodologyDeploymentTraces Lib/Sys Calls?overheadgopprofVisualizationRecompile&RerunYesVery High(20 x*)delverun-time instrum
3、entationProfile any running processYesvarygperftoolsrun-time instrumentationRecompile&RerunYesvaryeBPFAttach probe to kernel or user elfProfile any running processYesLow开销较高开销较高侵入性强侵入性强即时诊断能力弱即时诊断能力弱四个挑战:四个挑战:可扩展性弱可扩展性弱第 二 届 e B P F 开 发 者 大 会1.Profiling 与 Golang 2.Continuous Profiling3.Golang Runtim
4、e 诊断第 二 届 e B P F 开 发 者 大 会什么是 Continuous Profiling?PixieParcaPyroscopeContinuous Profiling 是持续监控和记录程序性能特征的工具,能够协助开发者充分保留现场并发现性能瓶颈。第 二 届 e B P F 开 发 者 大 会CPU Continuous Profiling 架构打造低开销、无侵入低开销、无侵入的工具第 二 届 e B P F 开 发 者 大 会CPU Continuous Profiling 性能优化第 二 届 e B P F 开 发 者 大 会成果展示第 二 届 e B P F 开 发 者 大
5、 会1.Profiling 与 Golang 2.Continuous Profiling3.Golang Runtime 诊断第 二 届 e B P F 开 发 者 大 会Runtime 诊断 概述Runtime 诊断能够对运行中的应用进行 diagnose,能够帮助开发者发现预期外的异常。delvedelveeBPFeBPF侵入性无侵入无侵入环境要求较高较低性能一般较高扩展性较低较高第 二 届 e B P F 开 发 者 大 会Runtime 诊断 eBPF 面临的问题栈帧解析参数解析uretprobeGolangGolang 的的 ABIABI 规规范不同于范不同于C C 语言语言不同版
6、本编译器遵不同版本编译器遵循的循的 ABIABI 规范也不规范也不同同识别参数类型识别参数类型解析参数的解析参数的ValueValueGolangGolang 内置了很内置了很多复杂的数据结多复杂的数据结构构uretprobeuretprobe 的实现的实现原理与原理与 GolangGolang 语语言的设计理念有言的设计理念有冲突冲突第 二 届 e B P F 开 发 者 大 会Golang 栈帧介绍/12 params,11 returnfunc addFunc(x in