bpftrace工具以及相关工具介绍
admin
2023-02-21 18:40:02
0

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


例如,使用bpftrace one-linervfs_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工具以及相关工具介绍



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

 

l  perf

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

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

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

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

 

l  Ftrace

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

 

l  Systemtap

bpftraceSystemTap均提供高级语言。

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

 

l  Lttng

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

 

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

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



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程序



相关内容

热门资讯

产能被冻、损失五百亿,阿联酋“... 阿联酋正式退出欧佩克,令这个成立了60多年、对全球油价都有着决定性影响的海湾核心组织公开决裂。欧佩克...
煤气灶火焰调什么颜色才最佳 良好的燃烧器,火焰呈浅蓝色,火力旺盛,火苗高度大小均匀一致。煤气灶火焰调节方式:1、将灶阀开到最大。...
柏特燃气灶中间没火怎么办 当我们使用柏特燃气灶时,出现中间没有火的情况可能是由多种原因引起的。以下是一些常见的原因和解决方法:...
火王燃气灶右边灶头打不着火 1、没有燃气。打不着火的情况大部分都是没有气了或者天然气管道堵塞所导致的,或者突发情况导致燃气公司关...
厨房橱柜开太快导致炉子熄火怎么... 1、使用燃气灶时,不要将燃气灶的门关的过紧导致气流不流通,从而间接导致炉子熄火的现象频发。2、在橱柜...
天然气火没关,把阀门关了 天然气火没关,把阀门关了如果只是一次这样做,不会造成安全问题,但最好将燃气灶具开关关闭,如果灶具使用...
金建希案主审法官坠亡,揭开韩国... ·申宗旿(中)在主持庭审。(韩联社)这一事件无疑已成为观察韩国司法独立现状的重要切片。作者:刘 潇当...
赖清德“偷渡式”窜访斯威士兰,... 台湾地区领导人赖清德此前因有关国家拒绝发放包机飞行许可,窜访斯威士兰受挫。5月2日,赖清德偷偷钻进斯...
28.5亿元建的高标准农田,“... 设备未安装、泵房被废弃、水渠不通水、农田灌溉难……鄱阳县部分高标准农田建设的问题正凸显出来。据澎湃新...
风声丨3万元即可入刑,史上最严... 作者丨胡敏洁浙江大学光华法学院教授、法律与社会政策研究中心主任长期以来,医药购销领域的腐败问题,始终...