千家信息网

bpftrace工具以及相关工具介绍

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,bpftrace是基于BPF和BCC构建的开源跟踪程序。与BCC一样,bpftrace附带了许多性能工具和支持文档。但是,它还提供了高级编程语言,使您可以创建功能强大的单行代码和简短的工具。例如,使用
千家信息网最后更新 2026年11月03日bpftrace工具以及相关工具介绍

bpftrace是基于BPF和BCC构建的开源跟踪程序。与BCC一样,bpftrace附带了许多性能工具和支持文档。但是,它还提供了高级编程语言,使您可以创建功能强大的单行代码和简短的工具。


例如,使用bpftrace one-liner将vfs_read() 返回值(字节或错误值)汇总为直方图:

# bpftrace -e 'kretprobe:vfs_read { @bytes = hist(retval); }'

Attaching 1 probe...
^C
@bytes:
(..., 0)             223 |@@@@@@@@@@@@@                                       |
[0]                  110 |@@@@@@                                              |
[1]                  581 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                 |
[2, 4)                23 |@                                                   |
[4, 8)                 9 |                                                    |
[8, 16)              844 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[16, 32)              44 |@@                                                  |
[32, 64)              67 |@@@@                                                |
[64, 128)             50 |@@@                                                 |
[128, 256)            24 |@                                                   |
[256, 512)             1 |


bpftrace是使用自定义单行代码和简短脚本的临时工具的理想选择,而BCC是复杂工具和守护程序的理想选择。





bpftrace与其它可观测性工具的对比

l perf

bpftrace提供了一种简洁的高级语言,而perf脚本语言则是冗长的。

perf通过perf记录和内存摘要模式(例如perf top)以二进制格式支持有效的事件转储。

bpftrace支持有效的内核内摘要,例如自定义直方图,而perf的内置内核内摘要仅限于计数(perf stat)。

可以通过运行BPF程序来扩展perf的功能,尽管不能使用bpftrace之类的高级语言来实现。

l Ftrace

bpftrace提供类似于C和awk的高级语言,而Ftrace具有其自己的特殊语法。Ftrace具有较少的依赖性,使其适合于小型Linux环境。Ftrace还具有检测模式,例如到目前为止的功能计数除了bpftrace使用的事件源之外,还进行了更多优化。(我的Ftrace funccount当前的启动和停止时间比bpftrace更快,并且运行时开销也较低。)

l Systemtap

bpftrace和SystemTap均提供高级语言。

bpftrace基于内置Linux技术,而SystemTap添加了自己的内核模块,事实证明,这些模块在RHEL以外的系统上都不可靠。正如bpftrace所做的那样,SystemTap支持BPF后端的工作已经开始,这应该使其在其他系统上更可靠。SystemTap当前在其库(磁带集)中具有更多辅助功能,可用于检测不同的目标。

l Lttng

LTTng优化了事件转储,并提供了用于分析事件转储的工具。与bpftrace相比,这种性能分析方法与bpftrace不同,后者专门用于临时实时分析。

l 应用程序自带的特定工具

特定于应用程序和运行时的工具仅限于用户级别的可见性。bpftrace还可以检测内核和硬件事件,从而确定那些工具无法解决的问题根源。这些工具的优点是它们通常是针对目标应用程序或运行时量身定制的。MySQL数据库分析器已经了解如何检测查询,而JVM分析器已经可以检测垃圾收集。在bpftrace中,您需要自己编写此类功能的代码。



bpftrace推荐的几个相关工具




bpftrace工具具有许多共同点:

  • 他们解决了现实世界中的可观察性问题。

  • 它们被设计为以root用户身份在生产环境中运行。

  • 每个工具都有一个手册页(在man / man8下)。

  • 每个工具都有一个示例文件,包含输出和讨论(在tools / * _ examples.txt下)。

  • 工具源代码以块注释介绍开始。

  • 这些工具越简单越好。(更复杂的工具将交由BCC使用。)

CentOS7下,bpftrace安装后的,可执行文件 *.bt文件路径在: /usr/share/bpftrace/tools

cd /usr/share/bpftrace/tools


./opensnoop.bt 即可执行对应的bpftrace程序



工具 程序 语言 高级 事件 功能 分析 检测 运行 内核 支持 代码 应用程序 摘要 文件 应用 不同 复杂 有效 简短 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司排名 长亮科技互联网金融 撒么互联网科技公司 互联网科技博客 太原新华互联网科技学校怎么样 现代互联网科技股 武汉健翔互联网络科技有限公司 链环科技传统企业怎么转型互联网 西安小鹰速贷互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 互联网数据科技专业 上海科技产业互联网平台 杭州披云加互联网科技有限公司 从那以后互联网科技有限公司 陕西彩京云互联网科技有限公司 10位科技互联网大佬 互联网科技大佬云集 优雇互联网科技有限公司 互联网高科技绘画 利用互联网等科技手段 以房互联网科技 浩特互联网科技 互联网金融科技平台 互联网科技教育视频 哈尔滨屹滨互联网科技有限公司 996高科技互联网公司 高科技互联网发展前景如何 山东子淼互联网科技有限公司 长沙易易互联网科技有限公司 互联网领先科技成果宣传视频
0