> 原文: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 演示文稿的大纲
- Ftrace Function Graph ARM - Ftrace Function Graph ARM - 由 Tim Biard 准备的报告和补丁,这些补丁为 ARM 系统添加了 function graph(函数调用关系图)和 函数执行时间跟踪功能
- 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(实时抢占)工具,可用于测量中断和互斥锁的延迟时间
- 此延迟跟踪器被内嵌在 RT-preempt 补丁里 - 见 Realtime Preemption and RT-preempt Article
- block tracer (blktrace) - 允许精确地查看给定队列中的块层正在做什么操作
- 来自 Jens Axboe 的介绍文档: 介绍
- 优秀的演示文档: blktrace.pdf
- 使用指南在这: blktrace guide
- 这项特性已经合入主线的 2.6.17 版本
- 时间轴功能 (blktrace post-processing tool): blktrace timeline utility
- delay accounting patches(延时统计补丁) - 统计并收集系统中每个任务的延时
跟踪基本架构
KProbes - 前身是 dprobes, 相关信息在这里: dprobes
[如果在这里加一些 djprobe 的资料就更好了]
采样系统
请注意,分析系统(或者“采样系统”)略有不同,在这里他们涉及到采样而不是时间跟踪。一些主要的 Linux 采样工具有:
- top - 为正在运行的系统(包括进程)提供了一个动态实时的视图
- 见 ‘man top’
- 也可参见 ksysguard, Gnome system Monitor
- OProfile - Linux 系统级的分析工具
- 见 oprofile
- 也可参考: oprofile at IBM
- BootChart - 对启动过程分析和提供进程启动的可视化数据和系统利用率
相关工具
- in-kernel statistics infrastructure - 一种提案,目标是在内核中实现一种通用的统计工具
- perfmon2 - 一种针对 CPU 的硬件性能监控特性的接口
- 见 perfmon
- inotify - inotify
其他系统
这里有一些我尚未分类的系统:
- Datastreams - 一个可以创建和监控跟踪点的系统 - 见 datastreams
合作成果
一些跟踪系统项目的领导人正在尝试合作: 见 Tracing Collaboration Project
分类: