BCC 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
BCC 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
BCC 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 C/C++ Python
操作系统 Linux
软件类型 开源软件
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2016-04-03

软件简介

BCC 是一个开源的 Linux 动态跟踪工具。无第三方模块依赖,该工具继承 BPF 这个强大的内核中虚拟机的功能,可对程序进行高效而且安全的跟踪。BPF 内建于 Linux 内核。

下面是对一个磁盘 IO 核心函数的跟踪截图:

# ./bitehist.py Tracing... Hit Ctrl-C to end.
^C
     kbytes          : count     distribution
       0 -> 1        : 3        |                                      |
       2 -> 3        : 0        |                                      |
       4 -> 7        : 211      |**********                            |
       8 -> 15       : 0        |                                      |
      16 -> 31       : 0        |                                      |
      32 -> 63       : 0        |                                      |
      64 -> 127      : 1        |                                      |
     128 -> 255      : 800      |**************************************|

工具结构图:

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2021/01/15 17:37

bcc学习总结一

基本结构 #导入库 from bcc import BPF #使用BPF()执行bpf代码 BPF(text=""" #C语言代码段 """ ) #对bpf的处理代码 C语言代码编写 不需要写main函数,目前知道可以写两种函数,以“kprobe__”开头的函数和自定义函数。bpf函数至少要包含一个参数“ctx”,即使不使用也应该存在,可以声明为“void *ctx”。 以“kprobe__”开头的函数,其余的名称部分表示要检测的函数,比如“kprobe__sys_clone”,表示要检测的函数是“sys_clo...

0
0
发表了博客
2019/12/22 11:47

bcc-tools工具之profile

profile是用于追踪程序执行调用流程的工具,类似于perf中的-g指令 相比perf -g而言,profile功能化更加细分,可以根据需要选择追踪层面,例如-U(用户要调用流程) -K (内核态调用流程) 下面具体介绍该工具的使用 采用profile --help,我们可以看到如下介绍: usage: profile [-h] [-p PID] [-U | -K] [-F FREQUENCY | -c COUNT] [-d] [-a] [-f] [--stack-storage-size STACK_STORAGE_SIZE] [-C CPU] ...

0
0
发表了博客
2019/08/13 10:51

centos7 升级最新版内核 并安装 bcc-tools

centos7 升级最新版内核 升级系统 [root@jikeshijian ~]# yum update -y 安装 ELRepo [root@jikeshijian ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org [root@jikeshijian ~]# rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 安装新内核 [root@jikeshijian ~]# yum remove -y kernel-headers kernel-tools kernel-tools-libs [root@jikeshijian ~]# yum --enablerepo="elre...

0
0
发表了博客
2020/11/21 22:00

用 eBPF/bcc 分析系统性能的一个简单案例

bcc是eBPF的一种前端,当然这个前端特别地简单好用。可以直接在python里面嵌入通过C语言写的BPF程序,并帮忙产生BPF bytecode和load进入kernel挂载kprobe、tracepoints等上面执行。之后,还可以从python取出来C函数里面导出的maps数据以及per-event数据并进行打印。 我们特别看一下其中的bitehist.py例子: 上述程序通过kprobe截获了内核的blk_account_io_completion()函数,并将每个request的data_len转换为单位KBytes后,进行...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
26 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部