《04-张同浩-eBPF在内核可观测故障定位中的实践.pdf》由会员分享,可在线阅读,更多相关《04-张同浩-eBPF在内核可观测故障定位中的实践.pdf(19页珍藏版)》请在三个皮匠报告上搜索。
1、自我介绍-2016 年北京大学毕业 电子通信工程-2017 年入职滴滴 目前基础平台系统软件负责人-主要聚焦 Linux 内核技术,容器技术,云网络技术。持续向Linux 内核,Open vSwitch 社区贡献200+Pr。eBPF 在内核可观测故障定位中的实践张同浩 滴滴 2024.07.26大纲3故障定位的应用实践1系统故障定位的现状和挑战2我们的方案和演进系统故障定位的现状和挑战 观测手段 故障现场 偶发毛刺系统故障定位的现状和挑战 业界方案 Alibaba SysAK Pixie:Kubernetes Monitoring,Application Debug Platform Bcc
2、/kernelshark/trace-cmd/perf-tools 我们的方案和演进 关键指标 修改内核?内核模块?eBPF?埋点 BPF map 限速 降级Applications(nginx,redis,docker.)Memory ManagementHuaTuoProcess SchedulingI/ONetworkingsubsystemsubsystemmetricsmetricsmemoryDirect/kswapd latencyCpu schedRunqlatIOD2c,Q2C,xfs lognetworkingxmit,qdisc latency,dropmetricsBP
3、F Maps我们的方案和演进 关键事件 事件驱动 阈值触发 关键执行上下文 常态运行 5%Applications(nginx,redis,docker.)Memory ManagementHuaTuoProcess SchedulingI/ONetworkingDrop/sendmsg/recvmsg latencyD2c、q2cdirect reclaim costeventsIrqoffPerf events ringbuf我们的方案和演进 AutoTracing 全栈 AutoTracing 指标驱动+关键工具Applications(nginx,redis,docker.)Memor
4、y ManagementHuaTuoProcess SchedulingI/ONetworkingMemory bursttracingIO burstCPU sys/idle/D-state/runqlatPerf events ringbufPolicies map Profiling Perf cpu_clock+eBPF Host/Containers/Process Golang/C+/Java我们的方案和演进 解决观测维度我们的方案和演进MetricsMetricsMoreMore overloadoverloadMoreMore contextcontextEventsEvent
5、sTracingTracingProfilingProfiling观测维度不同,损耗不同,有效上下文不同,适用场景不同-相互配合-因地适宜0 0细粒度系统运行状态我们的方案和演进MetricsEventsAutoTracingProfiling持续应用性能分析关键执行上下文更加丰富执行上下文应对偶发毛刺我们的方案和演进 Prometheus Metrics独立数据采集器 对开源观测体系的补充 Elastic Search日志,Tracing,火焰图数据 Grafana UI前端监控展示 K8S Pods/Client-go容器信息剥离公司特定服务依赖 开源标准化l 逻辑机房l 逻辑集群l 指标
6、表达l 组件依赖:odin,kube-agent,irmas 等我们的方案和演进 整体架构Applications(nginx,redis,docker.)AutotracingI/ONetworkingBPFProcess SchedulingMemory ManagementtracingTracing APITask managementState/Id/result/lifecycleEvents CoreBpf lib/tools/progsEvents plugi