一,bitehist简介
bitehist工具可以为我们生成Block I/O 大小的直方分步图。
二,代码示例
2.1 代码
#!/usr/bin/python
from __future__ import print_function
from bcc import BPF
from time import sleep# load BPF program
b = BPF(text="""
#include <uapi/linux/ptrace.h>
#include <linux/blk-mq.h>BPF_HISTOGRAM(dist);
BPF_HISTOGRAM(dist_linear);#ebpf程序
int trace_req_done(struct pt_regs *ctx, struct request *req)
{
dist.increment(bpf_log2l(req->__data_len / 1024));
dist_linear.increment(req->__data_len / 1024);
return 0;
}
""")#加载ebpf程序到内核,ebpf程序采集的数据会输入到类型为HISTOGRAM数据结构中。
if BPF.get_kprobe_functions(b'__blk_account_io_done'):
b.attach_kprobe(event="__blk_account_io_done", fn_name=&#