TDengine 是一款时序数据库(Time-Series Database),属于底层开源软件。在帮助用户定位和解决问题时,我们发现有时候会遇到这样一类问题:代码路径较长,整体步骤较多,Debug 的话工作量很大,临时修改代码的处理效率也很低。因此,在处理这类问题时,TDengine 研发工程师会采取动态追踪的方法,希望能快速定位问题。这时候就需要用到一个神奇的工具——bpftrace。
bpftrace 是 Linux 高级追踪工具和语言。该工具基于 eBPF 和 BBC 实现了通过探针机制采集内核和程序运行的信息,然后用图表等方式将信息展示出来,帮助开发者找到隐藏较深的 Bug、安全问题和性能瓶颈。其用户和贡献者包括 Netflix、Facebook、Red Hat 和 Shopify 等著名的科技公司。性能分析大神 Brendan Gregg 也是其重度参与者。
在生产系统中,打开日志到 143,或者使用 GDB,都会影响系统的正常运行;而 bpftrace 可以动态跟踪系统的运行情况,并在大部分情况下,几乎不会影响系统的正常运行。用 TDengine 研发工程师的话说:开启动态追踪,对于疑难杂症,不用再在日志海里捞针了。
TDengine 离用户最近的研发工程师金明磊,说:bpftrace 给人一种随便哪里都可以 trace 的感觉……
那么 bpftrace 到底有多少神奇之处,除了能快速定位问题,它还能在哪些方面大显神通?
本次直播,金明磊将结合 TDengine 的相关问题和大家聊一聊这款神奇的 Linux 性能工具——bpftrace。
金明磊,TDengine Database 研发工程师,从 2004 年开始从事 Linux 平台上的软件开发工作,对于系统编程、问题定位与解决都有相当丰富的经验。目前在涛思数据从事 TDengine 的分布式集群相关研发工作。他将分享:
- bpftrace 的前世今生
- bpftrace 相关工具
- 如何使用 bpftrace 处理 TDengine 节点离线问题
欢迎大家扫描下方二维码,关注 TDengine Database 的视频号,观看每周的微课堂以及直播活动。