免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5593 | 回复: 5
打印 上一主题 下一主题

OpenSolaris新特性解析之五: dtrace3-dtrace工具集 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-18 18:24 |只看该作者 |倒序浏览
该系列前面的文章



OpenSolaris新特性解析之一:Opensolaris之前身今世    http://bbs.chinaunix.net/viewthread.php?tid=1221539
OpenSolaris新特性解析之二:ZFS                              http://bbs.chinaunix.net/viewthread.php?tid=1234907
OpenSolaris新特性解析之三:SMF                             http://bbs.chinaunix.net/viewthread.php?tid=1273723
OpenSolaris新特性解析之四:FMA                             http://bbs.chinaunix.net/viewthread.php?tid=1295237
OpenSolaris新特性解析之五: dtrace1-基础                http://bbs.chinaunix.net/viewthread.php?tid=1315928
OpenSolaris新特性解析之五: dtrace2-语法          http://bbs2.chinaunix.net/viewthread.php?tid=1353868

这部分准备介绍Dtrace相关的工具集。

第一个就是Dtrace的tools kit,大家可以到 http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/ 这个网址去下,把那个压缩包下载到本地后解压就可以了。解压后会出现一个目录DTraceToolkit-0.99。进入这个目录后,我们ls一下,可以看到下面的目录和文件
Apps             errinfo        iopattern    Mem            Python           Tcl
Bin               Examples     iosnoop      Misc            README       User
Code            execsnoop    iotop          Net              Ruby              Version
Cpu              FS                Java            Notes          rwsnoop         Zones
dexplorer     Guide         JavaScript   opensnoop    rwtop
Disk             hotkernel     Kernel         Perl            Shell
Docs            hotuser        License        Php             Snippits
dtruss          Include         Locks          Proc            statsnoop
dvmstat         install         Man            procsystime  System


这其中大部分都是目录。 哦,对了,写到这里发现还没有介绍到底什么是Dtrace tools kit,这个工具集说白了就是一些dtrace脚本的集合,很多工程师在Dtrace的使用过程中发现很多时候我们需要用Dtrace的场合是相同的,我们用dtrace来解决的问题也是相同或者相似的,在这样的情况下,就有一些工程师站出来把这些常用的Dtrace脚本,写好,发布到opensolaris的社区里面,成为了opensolaris社区的一个项目,后来更多的工程师看到这个是个好东西,也加入进来,对已有的dtrace脚本进行改进,也增加了很多其他的常用的Dtrace脚本,到现在就成为了我们看到的样子。

我们看到这个有很多目录,这些目录实际上就是这些Dtrace脚本的组织方式,比如一个Dtrace脚本是和磁盘相关的,就放到Disk这个目录下,大家可以看到,现在的这个工具集里面的脚本基本上已经覆盖了我们日常使用的方方面面。

我们以Disk为例,cd Disk, 我们看到有个Readme,里面是对这一分类的说明。如果我们需要看到里面的每个脚本的作用是什么,有两个办法,第一个,是到DTraceToolkit-0.99/Man 这个目录下,看Readme,里面有如何把工具集的manpage加入的系统的方法,里面说得非常清晰,这里就不复述了,把manpage加入到系统后,我们就可以对工具集里面的每一个脚本做man,看它的详细解释。第二个方法,在DTraceToolkit-0.99/Docs/这个目录下面有个文件叫做Contents,我们vim它,就可以看到工具集里面的每个脚本是起什么作用的。

工具集一方面提供给了我们最有用的Dtrace脚本让我们不用自己去写,另外一方面也是学习Dtrace的一个很好的Example,当我们自己需要去写一些Dtrace脚本的时候,我们可以直接copy里面的一些语句。

好了,工具集这部分写到这里,都是些很简单的东西,里面的每一个脚本的怎么执行,看我前面的文章里面写的dtrace脚本的执行方法。执行之前记得su到root。

第二部分是Dtrace与开发工具Netbeans的结合。利用Netbeans这个集成开发环境,我们有了Dtrace的可视化开发工具,并且Netbeans还可以通过很简单的向导,把我们的dtrace脚本执行结果图形化!

netbeans的下载地址www.netbeans.org

下载安装好了之后让我们启动netbeans,然后选择tools->plugins,在弹出窗口里面我们选择available plugins那一项,然后我们看到里面有个插件名字叫做dtrace,我们把它勾上,然后install,这样netbeans就会到网上去把这个插件下载下来,然后安装上,这样我们的netbeans就有了dtrace的开发能力。看图1

然后我们在netbean的windows菜单下面选择dtrace,这样在导航栏里面就出现了dtrace的开发界面。看图2

大家可以看到这个插件实际上是有两部分,一部分是toolkit,也就是说这个插件把前面我们的说的那个Dtracestools kit已经集成了进来,第二部分,是个叫chime的东西,这个东西也是社区做的,他可以把我们dtrace脚本的输出图形化,它里面带了一些例子,大家可以运行看看,是不是图形化了。图3是检测中断的一个Dtrace脚本的输出,图形化的结果,不错吧。

那怎么将dtrace脚本的输出图形化呢?下面是一个步骤

比如我们有个Dtrace脚本,放在/lab/dtrace下, 脚本内容
sysinfo:::pswitch
{
    @prog[execname]=count();
}
这个脚本是用来检测跨上下文切换的,这种调用是非常费时的一种操作

步骤:
进入到Chime的主窗体,点击File->New Display,进入如下Create New Chime Display窗口


-4

可以在Title中编辑自己希望显示的名字。点击下一步进入到Set Dtrace Program窗口,并将Program String下面的文本框填入刚才上述的Dtrace脚本,在这里可以点击Check Complie来看一看写入的Dtrace脚本是否编译正确。如下图。


-5

点击下一步,进入Set Cleared Aggreagtions窗体这一步是选择是否清空以前聚合的数据,如果不清除,就会将上次运行的结果与这次运行的结果聚合在一起,我们选择Clear all aggregations即可。


-6

进入下一步,进入Specify Columns窗体,这个窗体要求用户指定显示中的三列,在这里我们显示三项:程序的名字Program Name,在上一秒内该程序在系统内执行的次数 Frequecy, 历史信息,这一列最终会形成一条曲线,通过点击Insert即可完成上述的工作。


-7

下面要做的事情是,告诉Chime第一列 Program Name要显示什么,首先选定上面窗体中的Program Name,点击Specify,
进入下面的窗体。


-8
由于系统已

1.png (77.93 KB, 下载次数: 122)

1.png

2.png (63.97 KB, 下载次数: 109)

2.png

3.png (88.53 KB, 下载次数: 109)

3.png

dtt_present.pdf

1017.74 KB, 下载次数: 120

论坛徽章:
0
2 [报告]
发表于 2009-02-18 18:41 |只看该作者
恩,图片多了,显示格式一片混乱

论坛徽章:
0
3 [报告]
发表于 2009-02-18 18:43 |只看该作者
大家只有将就着看了

论坛徽章:
0
4 [报告]
发表于 2009-02-18 19:45 |只看该作者
niupigege很好很专业很NB很强大。干脆取名为niubigege。顶!

论坛徽章:
0
5 [报告]
发表于 2009-02-19 11:47 |只看该作者
呵呵

论坛徽章:
62
洛杉矶湖人
日期:2015-02-10 09:56:11黑曼巴
日期:2016-06-28 17:41:282015-2016NBA季后赛纪念章
日期:2016-06-28 17:41:282016猴年福章徽章
日期:2016-02-18 15:30:34圣安东尼奥马刺
日期:2015-05-04 22:46:00菠菜神灯
日期:2015-05-04 22:35:07新奥尔良黄蜂
日期:2015-03-17 13:54:52明尼苏达森林狼
日期:2015-03-16 21:51:15萨克拉门托国王
日期:2015-03-02 16:10:58华盛顿奇才
日期:2015-03-02 16:10:58迈阿密热火
日期:2015-03-02 16:10:582016科比退役纪念章
日期:2016-06-28 17:41:28
6 [报告]
发表于 2009-02-19 12:53 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP