TDengine 是一款时序数据库,属于底层开源软件。在帮助用户定位和解决问题时,我们发现有时候会遇到这样一类问题:代码路径较长,整体步骤较多,Debug 的话工作量很大,临时修改代码的处理效率也很低。因此,在处理这类问题时,TDengine 研发工程师会采取动态追踪的方法,希望能快速定位问题。这时候就需要用到一个神奇的工具——bpftrace。


bpftrace 是 Linux 高级追踪工具和语言。该工具基于 eBPF 和 BBC 实现了通过探针机制采集内核和程序运行的信息,然后用图表等方式将信息展示出来,帮助开发者找到隐藏较深的 Bug、安全问题和性能瓶颈。其用户和贡献者包括 Netflix、Facebook、Red Hat 和 Shopify 等著名的科技公司。性能分析大神 Brendan Gregg 也是其重度参与者。


不妨看一段官方介绍:

bpftrace is a high-level tracing language for Linux enhanced Berkeley Packet Filter (eBPF) available in recent Linux kernels (4.x). bpftrace uses LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for interacting with the Linux BPF system, as well as existing Linux tracing capabilities: kernel dynamic tracing (kprobes), user-level dynamic tracing (uprobes), and tracepoints. The bpftrace language is inspired by awk and C, and predecessor tracers such as DTrace and SystemTap. bpftrace was created by Alastair Robertson.

【直播】聊一聊 Linux 性能工具:神奇的 bpftrace_tdengine

在生产系统中,打开日志到 143,或者使用 GDB,都会影响系统的正常运行;而 bpftrace 可以动态跟踪系统的运行情况,并在大部分情况下,几乎不会影响系统的正常运行。用 TDengine 研发工程师的话说:开启动态追踪,对于疑难杂症,不用再在日志海里捞针了。


TDengine 离用户最近的研发工程师金明磊,说:bpftrace 给人一种随便哪里都可以 trace 的感觉……


那么 bpftrace 到底有多少神奇之处,除了能快速定位问题,它还能在哪些方面大显神通?


本次直播,金明磊将结合 TDengine 的相关问题和大家聊一聊这款神奇的 Linux 性能工具——bpftrace。


金明磊,TDengine 研发工程师,从 2004 年开始从事 Linux 平台上的软件开发工作,对于系统编程、问题定位与解决都有相当丰富的经验。目前在涛思数据从事 TDengine 的分布式集群相关研发工作。



他将分享:

  1. bpftrace 的前世今生
  2. bpftrace 相关工具
  3. 如何使用 bpftrace 处理 TDengine 节点离线问题



本次分享将在 ​2022 年 3 月 24 日(本周四)20:00-21:00​ 通过 TDengine 视频号进行直播,感兴趣的朋友可直接点击下方 TDengine 视频号卡片预约观看。



微信公众号 - TDengine(taosdata_news)。