
Linux
宣之于口
^-^
展开
-
使用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 · 1424 阅读 · 0 评论 -
【Linux】BCC 工具编写
【Linux】BCC 工具编写本实验参照该实验手册:linux-tracing-workshop一、 setuidsnoop查看 killsnoop.py, 这是一个简单的基于kprobe的工具,可将kprobe和kretprobe附加到该sys_kill函数. 在Enter探针中,记录了有关终止信号和目标进程的数据,在Return探针中,记录了操作结果,并将自定义结构提交给用户空间以进行显...原创 2020-04-09 06:26:34 · 1559 阅读 · 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 · 2811 阅读 · 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 · 10367 阅读 · 1 评论 -
【Linux】BPF学习笔记 - bpftrace开发[7]
【BPF】学习笔记 - bpftrace开发[7]bpftrace是基于BPF和BCC构建的开源跟踪程序。 与BCC一样,bpftrace附带了许多性能工具和支持文档。 但是,它也提供了高级编程语言,允许创建功能强大的单行代码和简短的工具。 bpftrace是使用自定义单行代码和简短脚本的临时工具的理想选择,而BCC是复杂工具和守护程序的理想选择BPFTRACE 组件bpftrace包含有...翻译 2020-03-03 07:35:14 · 3272 阅读 · 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 · 1271 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 性能分析方法论[5]
【BPF】学习笔记 - 性能分析方法论[5]本学习笔记来自于阅读 Brendan Gregg的《BPF Performance Tools》一、工作负载建议执行工作负载特征的步骤:谁造成了负载: PID,进程名称,UID,IP地址…为什么称负载: 代码路径,堆栈跟踪,火焰图负载是多少: IOPS,吞吐量,类型负载如何随时间变化: 每个时间间隔的摘要示例: 这表明在跟踪时,名为"...翻译 2020-03-02 07:29:33 · 903 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 调试技术[4]
【BPF】学习笔记 - 调试技术[4]本学习笔记来自于阅读 Brendan Gregg的《BPF Performance Tools》一、 KPROBESkprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。它可以在生产环境中实时进行此操作,无需重新重启系统或以任何特殊模式运行内核。这意味着我们可以在内核的绝大多数指定函数中动态的插入探测点(动态...翻译 2020-03-01 08:36:13 · 1499 阅读 · 0 评论 -
【Linux】BPF学习笔记 - 堆栈跟踪[3]
【BPF】学习笔记 - 堆栈跟踪[3]一、简介堆栈跟踪,也称为堆栈回溯跟踪或调用跟踪,是显示代码流的一系列函数. 堆栈跟踪可以用于了解导致事件的代码路径, 以及对内核和用户代码进行性能分析(profiling)以观察执行时间.举例说明: func_a() -> func_b() -> func_c()二、堆栈遍历BPF提供了用于记录堆栈跟踪的特殊映射类型,并且可以使用基于帧...翻译 2020-03-01 06:32:16 · 1417 阅读 · 0 评论 -
【Linux】async-profiler
async-profiler本文涉及的图片取自Profiling JVM Applications in Productionasync-profiler是一个对系统性能影响很少的Java采样分析器,不会存在安全点偏差问题. 它具有特定于HotSpot的API,以收集堆栈跟踪并跟踪内存分配。探查器可与基于HotSpot JVM的OpenJDK,Oracle JDK和其他Java运行时一起使用。...原创 2020-03-11 08:23:29 · 1306 阅读 · 0 评论 -
【Linux】Perf
PerfPerf是内置于Linux内核源码树中的性能剖析(profiling)工具,它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析,常用于性能瓶颈的查找与热点代码的定位.一、术语硬件性能事件(Hardware event): 由 PMU硬件产生的事件, 在特定的条件下探测性能事件是否发生以及发生的次数, 比如 cache 命中软件性能事件...原创 2020-03-11 06:03:46 · 527 阅读 · 0 评论