eBPF
文章平均质量分 87
eBPF学习笔记
程序员彬哥
致力于开发出高效,简洁的代码
展开
-
BCC-stackcount
简述stackcount对导致某事件发生的函数调用栈就行计数。stack可以获取:某个事件为什么会被调用?调用的代码路径?有哪些不同的代码路径会调用该事件,他们的调用频次?stackcount在内核中使用一种特殊的、调用栈信息专用的BPF映射表数据结构进行统计。用户空间读取调用栈ID和统计数字,然后从BPF映射表中取出调用栈信息再对符号翻译和打印输出。语法stackcount语法与funccount相似都是由选项和eventname构成stackcount [options] eventn原创 2022-04-17 23:27:52 · 907 阅读 · 0 评论 -
BCC-funccount
简述funccount对事件,特别是函数调用进行计数,可以使它获取某个内核态或用户态函数是否被调用过该函数每秒被调用多少次funccount在内核中使用一个BPF映射表数据结构维护事件计数,它只讲总数给用户态。语法funccoount的命令行参数包括可以用来改变的选型和事件字符串:funccount [options] eventname eventname的语法是:name或p:name:对内核函数name()进行插装。lib:name或p:lib:name:对用户态lib库中原创 2022-04-17 23:26:48 · 3697 阅读 · 0 评论 -
BCC入门
简介BPF编译器集合(BPF Compiler Collection,简称BCC)。项目地址https://github.com/iovisor/bcc,是一个用于创建高效内核跟踪和操作程序的工具包,包括几个有用的工具和示例。它利用了扩展的 BPF(伯克利包过滤器),正式名称为 eBPF。BCC 使 BPF 程序更易于编写,使用 C 中的内核工具(并包括围绕 LLVM 的 C 包装器),以及 Python 和 lua 中的前端。它适用于许多任务,包括性能分析和网络流量控制。BCC还包含多个可以直接使用原创 2022-04-17 23:24:29 · 1463 阅读 · 0 评论 -
eBPF学习 - 入门
BPF和eBPF是什么?BPF是Berkeley Packet Filter(伯克利数据包过滤器)得缩写,诞生于1992年,其作用是提升网络包过滤工具得性能,并于2014年正式并入Linux内核主线。BPF提供一种在各种内核事件和应用程序事件发生时允许运行一小段程序的机制,使得内核完全可编程,允许用户定制和控制他们的系统以解决相应的问题。BPF是一项灵活而高效的技术,由指令集、存储对象和辅助函数等几部分组成。其采用了虚拟指令集规范,运行时BPF模块提供两个执行机制:解释器和即时编译器(JIT)。在实际原创 2022-04-17 23:20:51 · 2308 阅读 · 0 评论