之所以再写一篇博客,主要是原文的内容显示的有问题,直接贴文章中的脚本有问题,另外文章中也没有说明可能遇到的一些问题。
以下的安装步骤是在CentOS 6.4下进行的,内核版本是2.6.32-358.el6.x86_64,选择的应用软件是nginx-1.4.2。
1、检查内核是否提供utrace/uprobes用户态支持
打开/boot/config-2.6.32-358.el6.x86_64文件(内核版本不同,文件名不同),检查CONFIG_UTRACE宏是否设置。如果没有,很遗憾,要么自己打上补丁重新编译内核,或者选择其他的内核版本。
2、安装所需要的包
Systemtap的安装需要systemtap和systemtap-runtime rpm包。由于SystemTap是将脚本编译成内核模块然后插入到系统中,需要内核源码树,因此要安装kernel-devel、kernel-debuginfo、kernel-debuginfo-common包。debuginfo包在
debuginfo.centos.org下载。
3、编写SystemTap脚本
global bt
global quit = 0
probe timer.profile {
if (pid() == target()) {
if (
global quit = 0
probe timer.profile {
if (pid() == target()) {
if (