> 原文:eLinux.org

翻译:@Lotte-Bai

校订:@lzufalcon

Kernel Trace Systems

本文有一些关于不同内核跟踪系统的信息的链接:

目录

通用跟踪系统

一些主要的 Linux 通用跟踪系统是:

  • ptrace - 有能力跟踪系统调用的进入和退出,也能够用于跟踪信号如何传递到进程(也用于调试进程)
    • 见 ‘man ptrace’ 和 ‘man strace’
  • Ftrace
    • Ftrace Function Graph ARM - Ftrace Function Graph ARM - 由 Tim Biard 准备的报告和补丁,这些补丁为 ARM 系统添加了 function graph(函数调用关系图)和 函数执行时间跟踪功能
      • 这个报告有些好的介绍 Ftrace 的资料,以及其他资源的链接
    • kernel 函数跟踪器
    • 也可以用于调试或分析延迟和性能问题
    • 在主分支版本 2.6.27 后支持
    • 用 FTrace 测量函数持续时间 - 2009 年 Linux 研讨会 Tim Bird 演示文稿的大纲
  • System Tap - System Tap 是一个用于构建和执行跟踪和采样的系统,并可以应用于一个正在运行的 Linux 系统
  • LTTng - Linux Trace Toolkit, next generation (Linux 跟踪工具套件,下一代)
  • LKST - Linux Kernel State Tracer(Linux 内核状态跟踪器)

专用跟踪系统

有一些其他重要的专用内核跟踪系统:

  • KFT - Kernel Function Trace - 跟踪函数进而显示函数执行时间以及调用关系图
  • latency trace - 这是一个 RT-preempt(实时抢占)工具,可用于测量中断和互斥锁的延迟时间
  • block tracer (blktrace) - 允许精确地查看给定队列中的块层正在做什么操作
  • delay accounting patches(延时统计补丁) - 统计并收集系统中每个任务的延时

跟踪基本架构

  • KProbes - 前身是 dprobes, 相关信息在这里: dprobes

    • 参阅一份优秀的教程: kprobes
    • 主线内核的 KProbes 已经支持 x86, Alpha 和 PPC64 架构,一个 MIPS 的实现也在 2.6.16 内核上完成并且在 Toshiba TX 49 平台上验证过,补丁可以从补丁存档下载到。
  • [如果在这里加一些 djprobe 的资料就更好了]

采样系统

请注意,分析系统(或者“采样系统”)略有不同,在这里他们涉及到采样而不是时间跟踪。一些主要的 Linux 采样工具有:

  • top - 为正在运行的系统(包括进程)提供了一个动态实时的视图
  • OProfile - Linux 系统级的分析工具
  • BootChart - 对启动过程分析和提供进程启动的可视化数据和系统利用率

相关工具

  • in-kernel statistics infrastructure - 一种提案,目标是在内核中实现一种通用的统计工具
  • perfmon2 - 一种针对 CPU 的硬件性能监控特性的接口
  • inotify - inotify

其他系统

这里有一些我尚未分类的系统:

  • Datastreams - 一个可以创建和监控跟踪点的系统 - 见 datastreams

合作成果

一些跟踪系统项目的领导人正在尝试合作: 见 Tracing Collaboration Project

分类: