BPF
宣之于口
^-^
展开
-
使用BPF监视JVM应用程序
使用BPF监视JVM应用程序参考文章: Fast and secure JVM application monitoring with BPF magic and JVM-BPF一、Linux跟踪工具的概况X轴为信息详细程度,Y轴为易于使用情况ftrace 是一种内置机制,其已包含在Linux中。它是一种跟踪性能问题等的工具。但是,它并非设计用于Java。它不能用于跟踪许多有趣的Jav...原创 2020-04-22 07:29:49 · 1322 阅读 · 0 评论 -
【Linux】BCC 工具编写
【Linux】BCC 工具编写本实验参照该实验手册:linux-tracing-workshop一、 setuidsnoop查看 killsnoop.py, 这是一个简单的基于kprobe的工具,可将kprobe和kretprobe附加到该sys_kill函数. 在Enter探针中,记录了有关终止信号和目标进程的数据,在Return探针中,记录了操作结果,并将自定义结构提交给用户空间以进行显...原创 2020-04-09 06:26:34 · 1484 阅读 · 0 评论 -
【Linux】BCC 工具使用
【Linux】BCC 工具使用本实验参照该实验手册:linux-tracing-workshop1. 缓慢的文件I/O尝试跟踪由于I/O操作缓慢而表现出延迟的应用程序编译并运行应用程序: 首先运行以下命令来编译logger应用程序,让其在后台执行[root@rumia linux-tracing-workshop-master]$ gcc -g -fno-omit-frame-point...原创 2020-04-09 06:25:57 · 2697 阅读 · 0 评论 -
【Linux】BCC 工具安装
【Linux】BCC 工具安装GIT地址一、安装步骤1. 安装构建依赖项sudo yum install -y epel-releasesudo yum update -ysudo yum groupinstall -y "Development tools"sudo yum install -y elfutils-libelf-devel cmake3 git bison flex...原创 2020-04-04 05:30:49 · 10168 阅读 · 1 评论 -
【Linux】BPF学习笔记 - bpftrace开发[7]
【BPF】学习笔记 - bpftrace开发[7]bpftrace是基于BPF和BCC构建的开源跟踪程序。 与BCC一样,bpftrace附带了许多性能工具和支持文档。 但是,它也提供了高级编程语言,允许创建功能强大的单行代码和简短的工具。 bpftrace是使用自定义单行代码和简短脚本的临时工具的理想选择,而BCC是复杂工具和守护程序的理想选择BPFTRACE 组件bpftrace包含有...翻译 2020-03-03 07:35:14 · 3145 阅读 · 1 评论 -
【Linux】BPF学习笔记 - BCC工具[6]
【BPF】学习笔记 - BCC工具[6]本学习笔记来自于阅读 Brendan Gregg的《BPF Performance Tools》BPF编译器集合(BCC)是一个开放源代码项目,其中包含用于构建BPF软件的编译器框架和库。 它是BPF的主要前端项目,受到BPF开发人员的支持. BCC还包含70多个现成的BPF性能分析和故障排除工具BCC 组件: BCC包含有关工具,手册页和示例文件的...翻译 2020-03-02 09:33:51 · 1174 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 性能分析方法论[5]
【BPF】学习笔记 - 性能分析方法论[5]本学习笔记来自于阅读 Brendan Gregg的《BPF Performance Tools》一、工作负载建议执行工作负载特征的步骤:谁造成了负载: PID,进程名称,UID,IP地址…为什么称负载: 代码路径,堆栈跟踪,火焰图负载是多少: IOPS,吞吐量,类型负载如何随时间变化: 每个时间间隔的摘要示例: 这表明在跟踪时,名为"...翻译 2020-03-02 07:29:33 · 823 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 调试技术[4]
【BPF】学习笔记 - 调试技术[4]本学习笔记来自于阅读 Brendan Gregg的《BPF Performance Tools》一、 KPROBESkprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。它可以在生产环境中实时进行此操作,无需重新重启系统或以任何特殊模式运行内核。这意味着我们可以在内核的绝大多数指定函数中动态的插入探测点(动态...翻译 2020-03-01 08:36:13 · 1401 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 堆栈跟踪[3]
【BPF】学习笔记 - 堆栈跟踪[3]一、简介堆栈跟踪,也称为堆栈回溯跟踪或调用跟踪,是显示代码流的一系列函数. 堆栈跟踪可以用于了解导致事件的代码路径, 以及对内核和用户代码进行性能分析(profiling)以观察执行时间.举例说明: func_a() -> func_b() -> func_c()二、堆栈遍历BPF提供了用于记录堆栈跟踪的特殊映射类型,并且可以使用基于帧...翻译 2020-03-01 06:32:16 · 1274 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 技术背景[2]
【BPF】学习笔记 - 技术背景[2]本学习笔记来自于阅读 Brendan Gregg的《BPF Performance Tools》一、CLASSICAL BPF (BPF)用户使用针对BPF虚拟机的指令集(也称为BPF字节码)定义过滤器表达式, 然后传递给内核以供解释器执行. 这使得过滤可以在内核级别进行,而无需将每个数据包复制到用户级别的进程中, 提升了tcpdump使用的数据包筛选的...翻译 2020-03-01 03:41:15 · 2253 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 基本概念 [1]
【BPF】学习笔记 - 基本概念 [1]本学习笔记来自于阅读 Brendan Gregg的《BPF Performance Tools》一、介绍数据包筛选器(BPF) 是一种内核执行引擎,用于处理虚拟指令集,并且最近进行了扩展(又称eBPF),这使BPF变成了通用执行引擎,可用于多种用途,包括创建高级性能分析工具。这是一种在各种内核和应用程序事件上运行小型程序的方法。 如果您熟悉JavaS...翻译 2020-02-29 06:50:53 · 1557 阅读 · 0 评论