1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTrace VirtualBox image文件

dtracehol网站提供了一个Solaris 11VirtualBox image文件,方便手头没有DTrace环境的朋友,装个VirtualBox就可以玩(如何使用image文件,请参考这个链接)。由于下载网站环境问题,经作者同意,我在国内云盘上共享了这个image文件,欢迎大家下载使用:

下载地址:http://yunpan.cn/cjrxyVwhfqkax  访问密码 5814
登录系统用户名:demo,登录密码:demo123
root密码:demo123
1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTrace architecture简介

DTrace architecture(结构图)如下所示:

architecturearchitecture1

最上面是DTrace consumer程序,它们是运行在user-mode(用户态)的程序,并且使用libdtrace.so作为和DTrace driver打交道的接口。平时我们在命令行运行的dtrace命令其实就是一个DTrace consumer程序。

libdtrace.so的一个核心模块就是D脚本语言的编译器,它会把DTrace脚本或是命令行翻译成一种byte-code(字节码)程序。这些程序包含了和probe(探针)绑定的predicate(断言)和action(动作)。DTrace kernel framework[......]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTrace作者Bryan Cantrill参加reddit的AMA访谈

DTrace作者Bryan Cantrill201546日参加了redditAMA访谈,感兴趣的朋友可以关注一下。我也问了两个和DTrace相关的问题:

(1)如何看待DTrace的前景?会不会有新feature加入DTrace?如何看待OracleDTrace移植到Linux?

Q: As the father of DTrace, how do you think the prospect of the DTrace? Do you have any new feature plan for DTrace? What do you think of Oracle's po[......]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

Dtrace-example源码分析

Adam Leventhalgithub上建立了一个dtrace-example项目,介绍如何使用DTraceAPI做一个单独的trace工具。在这篇文章里,我就对这个项目的源码做一个简单的分析。

dtrace-example.c包含了4个函数,其中最主要的是main函数,代码如下:

int
main(int argc, char **argv)
{
    int err;

    if ((g_dtp = dtrace_open(DTRACE_VERSION, 0, &err)) == NULL) {
        die("failed to init[......]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

“Physical CPU”还是“logic CPU”?

上个月的DTrace mailing list里,有人问到,在DTrace的教程里,总被提到的“Per CPU”到底指的是什么?对此问题,Robert Mustacchi给出的解释是指一个“logic CPU”。我们知道,现在CPU早已经进入多核时代,一颗“Physical CPU”可以包含多个core,而一个core又可以包含多个hardware thread。每个hardware thread在操作系统看来,就是一个“logic CPU”,即一个可以被调度的CPU实例。举个例子,如果一颗“Physical CPU”包含4core,而每个core又包含2hardware thread,则[……]

阅读全文