主要观点:当机器出现意外行为时,除了常用的调试工具,还可使用bpftrace。bpftrace利用 eBPF 能深入系统内部,通过awk风格语言编写脚本,响应内核事件,提取信息并打印输出,还自带一系列有用脚本,同时可自定义脚本进行监控。
关键信息:
- eBPF 可动态检测和编程 Linux 内核,
bpftrace借助其能查看系统内部。 - 在 macOS 上无法安装
bpftrace,需在 Linux 系统中安装,可从 Flox Catalog 安装并创建环境激活使用。 - 如
cpuwalk.bt可采样 CPU 执行进程情况,undump.bt可转储 Unix 域套接字消息内容,tcpconnect.bt可列出新的 TCP 连接。 - 可通过
bpftrace -l查看可用探针,编写脚本如execsnoop.bt可跟踪exec系统调用,bigreadsnoop.bt可报告大于 100,000 字节的读取。
重要细节: bpftrace及其捆绑脚本需超级用户权限运行。- 编写
bpftrace脚本可参考bpftrace 文档,探针名称有三部分,可用*作为通配符,还有开始和结束系统调用的探针。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。