找回密码
 FreeOZ用户注册
查看: 3975|回复: 2
打印 上一主题 下一主题

[Linux] SYSTEMTAP, Linux下的倚天剑or屠龙刀

[复制链接]
跳转到指定楼层
1#
发表于 6-6-2008 18:48:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
熟悉Solaris的都知道Solaris 10中有个很牛逼的DTrace技术,惹着诸如MacOSX,FreeBSD之类的系统纷纷把DTrace引入到自家内核。不过就像Solaris的ZFS一样,由于许可证的问题,这些Solaris上的NB技术不可能移植到Linux上。不过Linux有一个能和DTrace媲美的技术,也是很好很强大的,一般人偶不告诉他  它的名字就叫: SYSTEMTAP.


那么SYSTEMTAP能干什么呢?如果你懂得DTrace能干什么,那么SYSTEMTAP也就能干什么,形象点说SYSTEMTAP/DTrace之类的东东就像医院里的CT一样,能在系统运行时完全透视解剖系统运行的参数。 没有这个宝贝之前,系统底层发生了问题调试起来简直能让人发疯。那是的程序员不可以和医生相比,最多类似法医,只能在死人(终止运行的程序)身上(没死的话得杀死)才能发现个蛛丝马迹。
喜欢Linux/Unix的朋友不可错过对这个东东的研究啊,搞系统/数据库管理的TX也应该会很中意这个技术的。

references:
  • http://www.ibm.com/developerworks/cn/linux/l-systemtap/
  • http://sourceware.org/systemtap/
  • http://sourceware.org/systemtap/tutorial.pdf
  • http://sources.redhat.com/systemtap/wiki/RedHatSummit2007?action=AttachFile&do=get&target=RHSummit07-ETSystemTap.pdf
回复  

使用道具 举报

2#
 楼主| 发表于 6-6-2008 18:54:46 | 只看该作者
这是个比top命令精确得多的SYSTEMTAP版topcpu脚本,每3秒钟把CPU占用率最高的PID列出来。数字代表3秒内该进程被上下文切换的次数
  1. #!/usr/local/bin/stap -k
  2. probe kernel.function("context_switch") {
  3.   switches ++   # count number of context switches
  4.   now = get_cycles()
  5.   times[pid()] += now-lasttime  # accumulate cycles spent in process

  6.   execnames[pid()] = execname() # remember name of pid
  7.   lasttime = now
  8. }
  9. probe timer.ms(3000) { # every 3000 ms
  10.   printf ("\n%10s %30s %20s  (%d switches)\n",
  11.           "pid", "execname", "cycles", switches);

  12.   foreach ([pid] in times-) # sort in decreasing order of cycle-count
  13.     printf ("%10d %30s %20d\n", pid, execnames[pid], times[pid]);
  14.   # clear data for next report
  15.   delete times
  16.   switches = 0

  17. }
  18. probe begin {
  19.   lasttime = get_cycles()
  20. }
  21. global lasttime, times, execnames, switches
复制代码

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 强,谢谢分享!

查看全部评分

回复  

使用道具 举报

3#
发表于 10-6-2008 18:22:23 | 只看该作者
NB 的东西啊。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 17-11-2024 06:03 , Processed in 0.031737 second(s), 20 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表