http://sourceware.org/systemtap/tutorial.pdf
安装systemtap环境
#yum install systemtap systemtap-runtime
安装内核调试信息
连上外网,使用stap-prep 命令安装
# stap-prep
如果不能连上外网,或者没有yum源,需要手动下载内核调试信息安装
首先查看内核版本号uname -r
[root@ceph1 ~]# uname -r
3.10.0-123.el7.x86_64
那么需要安装的内核包如下:
kernel-debuginfo-3.10.0-123.el7.x86_64
kernel-debuginfo-common-x86_64-3.10.0-123.el7.x86_64
kernel-devel.x86_64-3.10.0-123.el7.x86_64
安装ceph调试信息包
ceph-debuginfo.x86_64
并安装,ceph调试包的版本号,必须和所部署的ceph的版本号一致。
使用systemtap
#vi osd.stp
probe process("ceph-osd").function("OSD::*").call
, process("ceph-osd").function("OSDService::*").call
{
printf("%s -> %s\n", thread_indent(4), ppfunc());
}
process表示程序的名称,function表示函数的名字,如果OSD::*,表示输出所有OSD类的相关函数。
printf表示打印出,用法类似C语言的printf,thread_indent表示打印线程号,ppfunc()表示打印出函数名
运行
#stap -x {osdpid} osd.stp