1 Star2 Stars3 Stars4 Stars5 Stars (1评分, 平均分: 5.00)
Loading...
Featured post

建立讨论tracing工具的邮件列表

有时我会在公众号后台收到关于使用tracing工具的问题。说实话,我的答案不一定是对的或最优的,所以就想建立一个邮件列表,这样大家都可以看到问题,并参与讨论。另外,邮件列表的一个好处就是保存文档比较好,这样日后查阅起来比较方便。我不确定会有多少人会加入,所以周四就在公众号上问了一下,还是收到了一些响应,那就建一个吧。

其实,目前所有的工具都有专门的邮件列表,但都是英文的。那我想就建立一个使用中文讨论的邮件列表吧。讨论的话题就是所有在工作中使用的tracing工具,不仅限于DTracesystemtap, perf_eventsLTTng等等都可以。欢迎所有对tracing工具感兴趣的朋友[……]

阅读全文

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

DTrace脚本使用选项时需要注意的问题

DTrace可以通过-x指定编译或运行时的选项。以下列命令为例:

# dtrace -n 'syscall::write:entry /pid == $target/ { printf("Written %d bytes\n", arg2); }' -c "dd if=/dev/zero of=/dev/null count=1"
dtrace: description 'syscall::write:entry ' matched 2 probes
1+0 records in
1+0 records out
512 bytes transferred in 0.00003[......]

阅读全文

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...