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

使用DTrace和火焰图分析Rust程序

这篇文章参考自Rust Profiling with DTrace and FlameGraph on OSX ,不同之处在于我使用的是操作系统是FreeBSD。使用DTrace和火焰图分析Rust程序的步骤如下:

(1)如果编译Rustrelease版本程序,需要在Cargo.toml加入下列配置:

[profile.release]
debug = true

(2)运行Rust程序(名字为stream),并使用DTrace进行采样:

dtrace -c './stream' -o out.stacks -n 'profile-997 /execname == "[......]

阅读全文

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

使用DTrace检测进程间发送信号

下面这个DTrace脚本可以记录哪些程序kill掉了其它进程:

#!/usr/sbin/dtrace -qs
proc:::signal-send
/ (args[2] == SIGKILL) /
{
    printf("[%s - %d - %d] sent SIGKILL to pid %d\n",
    execname, pid, tid, args[1]->pr_pid);
}

你也可以把SIGKILL换成其它感兴趣的信号。如果在FreeBSD上运行,需要把args[1]->pr_pid换成args[1]->p_pid。运行结果如下[……]

阅读全文

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

FreeBSD上安装DTrace Toolkit

FreeBSD上安装DTrace Toolkit可以使用下面两种方式:
(1)

cd /usr/ports/sysutils/DTraceToolkit/ && make install clean

(2)

pkg install dtrace-toolkit

DTrace Toolkit会被安装在/usr/local/share目录下:

# ls -lt /usr/local/share/dtrace-toolkit/
total 292
drwxr-xr-x   2 root  wheel    512 Jun  2 16:59 Zones[......]

阅读全文

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

Linux上的新“DTrace”——BPF

Brendan Gregg今天发表了一篇新文章:DTrace for Linux 2016,其一开始就提到:

With the final major capability for BPF tracing (timed sampling) merging in Linux 4.9-rc1, the Linux kernel now has raw capabilities similar to those provided by DTrace, the advanced tracer from Solaris.

这就意味着所有BPF的重要功能都已进入Linux主线,只待4.9版本正式发布,[……]

阅读全文