bpftrace 在 Curve 使用总结
概述 Curve 是云原生计算基金会 (CNCF) Sandbox 项目,是网易主导自研和开源的高性能、易运维、云原生的分布式存储系统,由块存储 CurveBS 和文件系统 CurveFS 两部分组成。 在版本开发过程中,避免不了出现各种各样的问题。同时,问题出现的地方往往可能会缺乏日志和监控等关键信息。对于这些问题,通常的做法是添加必要的日志、监控,然后重新进行复现。这样的流程,延缓了故障定位修复的进度。为了规避这一问题,Curve 引入了一些故障定位的可观测性工具和方法。下面对 bpftrace 进行简要的介绍,以及使用中的实践总结。 bpftrace 介绍 bpftrace 是基于 Linux 内核 eBPF 的高级跟踪语言,利用 BCC 与内核 BPF 系统进行交互,同时也可以利用内核现有的跟踪功能:kernel/user-level dynamic tracing、tracepoints等。语法类似于 awk 和 C,提供了丰富的功能,可以协助分析程序行为、性能瓶颈以及故障定位等。 bpftrace 基础用法 下面以一个简单的例子,介绍 bpftrace 的基础用法: #!/...