/images/hugo/avatar.png

3.1 Systemp 简介

从今天开始我们将学习第一个可编程的动态追踪工具 Systemtap。本节是 Systemtap 的一个基本介绍。

1. Systemtap 简介

动态追踪技术起源于 Solaris 系统的 DTrace。Dtrace 有 Linux Mac OS X 等系统的移植版,但是实现的都差强人意,不支持很多高级特性。Systemtap 是 Redhat 开源的 Linux 上的动态追踪工具,是 Linux 上目前最成熟的动态追踪框架。

2.6 eBPF

今天我们来讲第二动态追踪技术 eBPF,eBPF 就是 Linux 版的 DTrace,可以通过 C 语言自由扩展。

1. eBPF 简介

eBPF 的工作原理如下图所示:

/images/linux_pf/eBPF_arch.png

2.5 Dtrace

今天我们来讲解第一个动态追踪技术 DTrace, 它是动态追踪技术的鼻祖

1. Dtrace 简介

Solaris 系统的 DTrace 是动态追踪技术的鼻祖,它提供了一个通用的观测框架,并可以使用 D 语言进行自由扩展。

2.4 perf 的使用

上一节我们学习了 perf 的基本原理,对 perf 有了一个整体上的认识,本节我们来学如何使用 perf 进行性能分析。

我们将按照如下几个部分来介绍 perf 的使用:

  1. perf 的辅助性命令,包括 perf list,perf probe 等
  2. perf 的三种使用方式,计数模式,采样事件,以及事件上的 bp 程序
  3. perf 提供的特殊用途的子命令,包括 perf sched,perf mem 等等
  4. perf.data 的处理,这一部分命令用于格式化输出 perf.data 的内容便于生成类似火焰图等更复杂的图表

/images/linux_pf/perf_events_flow.png