LTT系统运行状态和流程跟踪工具

联合创作 · 2023-09-27 06:19

LTT (Linux Trace Toolkit) 是一个用于跟踪系统详细运行状态和流程的工具,它可以跟踪记录系统中的特定事件。这些事件包括:

 系统调用的进入和退出
 陷阱/中断(Trap / Irq)的进入和退出
 进程调度事件
 内核定时器
 进程管理相关事件:创建 ,唤醒,信号处理等等
 文件系统相关事件:Open / Read / Write / Seek / Ioctl 等等
 内存管理相关事件:内存分配/释放等
 其他事件:IPC / Socket/ 网络 等等

此外 Ltt还提供了自定义和记录需要跟踪的事件类型的函数接口。

LTT的确是一个很有用的工具,灵活的配合其他工具的使用,如strace,time等等,可以作为分析优化系统的performance的一个可行的途径。

值得一提的是,LTT可以通过设置参数,在特定的时间段,筛选所需要记录的事件类型,还可以按进程ID等选择所跟踪的特定对象,通过合理的配置参数,可以使得其对系统所造成的额外负担减少到一个合理的程度,对系统性能的分析基本不会造成明显的干扰因素。

另外LTT提供的自定义和记录需要跟踪的事件类型的函数接口,也使它有了一些拓展能力,可以用来Debug自己编写的内核模块代码。

LTT跟踪用户空间事件的实现,是通过其内核模块中几个特定的IOCTL接口,由用户空间的一个LIB库将其包装成函数,使得其使用方法与其在内核 模块中自定义和记录事件类型的函数接口相同。应该说这是一个很巧妙的实现办法,不过对其性能个人还是有些怀疑,因为这样一来,对用户空间事件的纪录就需要 经由 用户空间-〉内核空间-〉用户空间 走一趟来实现。

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报