ftrace和它的前端工具trace-cmd
浏览:2013次 出处信息
最近在调查lockless的ring_buffer的时候,发现了ftrace.
ftrace是 Linux 内核中提供的一种调试工具。使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用.
http://lwn.net/Articles/322666/
trace-cmd - command line reader for ftrace: 请参考 http://lwn.net/Articles/341902/
在2.6.28-rc2以后的内核都支持的, 当然包括RHEL6(2.6.32), 我粗粗的演示下ubuntu 10.10下的使用:
$ sudo apt-get -y install trace-cmd
$ man trace-cmd-record #这个是最核心的功能,收集数据的
$ sudo trace-cmd record -e sched_switch ls > /dev/null
disable all
enable sched_switch
offset=464000
offset=466000
$ trace-cmd report
version = 6
trace-cmd: No such file or directory
function scsi_trace_parse_cdb not defined
failed to read event print fmt for scsi_dispatch_cmd_start
function scsi_trace_parse_cdb not defined
failed to read event print fmt for scsi_dispatch_cmd_error
Error: expected \'name\' but read \'FORMAT\'
Error: expected \'name\' but read \'FORMAT\'
Error: expected type 5 but read 4
failed to read event print fmt for do_sys_open
Error: expected type 5 but read 4
failed to read event print fmt for open_exec
cpus=2
ls-8588 [001] 16611.191996: sched_switch: 8588:120:R ==> 8587:120: trace-cmd
trace-cmd-8587 [001] 16611.192040: sched_switch: 8587:120:S ==> 8588:120: ls
Xorg-1360 [000] 16611.192868: sched_switch: 1360:120:R ==> 1979:120: alsa-sink
ls-8588 [001] 16611.192979: sched_switch: 8588:120:R ==> 1909:120: pulseaudio
...
类似的功能,当然可以用systemtap来写,但是工具总是更方便.
trace-cmd使用的模式总是先record收集数据,然后report.
目前支持以下插件plugins:
blk function_graph mmiotrace wakeup_rt wakeup function sched_switch nop
对于大部分的系统调优是足够的.
祝大家玩的开心.
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:分布式日志系统scribe使用手记
后一篇:使用smartmontools监控磁盘状况 >>
文章信息
- 作者:Yu Feng 来源: Erlang非业余研究
- 标签: ftrace trace-cmd
- 发布时间:2011-03-03 21:27:43
近3天十大热文
-
[914] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[54] 整理了一份招PHP高级工程师的面试题 -
[53] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 海量小文件存储 -
[52] 全站换域名时利用nginx和javascri -
[52] Innodb分表太多或者表分区太多,会导致内 -
[51] 用 Jquery 模拟 select -
[50] CloudSMS:免费匿名的云短信 -
[48] 分享一个JQUERY颜色选择插件