`
xiaoyu966
  • 浏览: 260978 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

centos之systemtap安装

阅读更多

什么是systemtap

SystemTap 是监控和跟踪运行中的 Linux 内核的操作的动态方法。

 

假如现在有这么一个需求:需要获取正在运行的 Linux 系统的信息,如我想知道系统什么时候发生系统调用,发生的是什么系统调用等这些信息,有什么解决方案呢?

  • 最原始的方法是,找到内核系统调用的代码,加上我们需要获得信息的代码、重新编译内核、安装、选择我们新编译的内核重启。这种做法对于内核开发人员简直是梦魇,因为一遍做下来至少得需要1个多小时,不仅破坏了原有内核代码,而且如果换了一个需求又得重新做一遍上面的工作。所以,这种调试内核的方法效率是极其底下的。
  • 之后内核引入了一种Kprobe机制,可以用来动态地收集调试和性能信息的工具,是一种非破坏性的工具,用户可以用它跟踪运行中内核任何函数或执行的指令等。相比之前的做法已经有了质的提高了,但Kprobe并没有提供一种易用的框架,用户需要自己去写模块,然后安装,对用户的要求还是蛮高的。
  • systemtap 是利用Kprobe 提供的API来实现动态地监控和跟踪运行中的Linux内核的工具,相比Kprobe,systemtap更加简单,提供给用户简单的命令行接口,以及编写内核指令的脚本语言。对于开发人员,systemtap是一款难得的工具。

下面介绍如何在CentOS(redhat)下安装SytemTap

 

SystemTap的安装

1. 查看kernel版本

uname -a

 这里假设内核版本为:2.6.18-128.el5

 

 

2. 安装kernel-devel

最简单的方法,使用yum
yum install kernel-devel

 注意:kernel-devel的版本必须和内核版本一致。yum有可能安装的版本和上面的内核版本不一致。所以有时候需要去寻找对应的kernel-devel版本。可以去以下链接中找对应的kernel-devel版本,并安装。

http://ftp.cs.stanford.edu/pub/rpms/centos/5/x86_64/

这里我们下载kernel-devel-2.6.18-128.el5.x86_64.rpm,并安装
rpm-ivh kernel-devel-2.6.18-128.el5.x86_64.rpm

 安装好的kernel-devel目录为:/usr/src/kernels/2.6.18-128.el5-x86_64

 

3. 安装systemtap

yum install systemtap

 

4.安装debuginfo

去以下链接寻找对应内核的debuginfo版本, 名称如下:

kernel-debuginfo-common-xxxxx

kernel-debuginfo-xxxx

 

http://debuginfo.centos.org/

如果没有找到,自行google。。

 

我们这里的内核版本对应的rpm包路径为:

http://rpm.pbone.net/index.php3/stat/4/idpl/13968571/dir/redhat_el_5/com/kernel-debuginfo-common-2.6.18-128.el5.x86_64.rpm.html

ftp://ftp.pbone.net/mirror/ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/x86_64/Debuginfo/kernel-debuginfo-2.6.18-128.el5.x86_64.rpm

下载,并安装

rpm -ivh kernel-debuginfo*.rpm

 

安装好之后,简单测试一下:

stap -ve 'probe begin { log("hello world") exit() }'

 

如果运行结果如下,则证明安装成功。

写道
Pass 1: parsed user script and 72 library script(s) using 87916virt/21476res/2600shr kb, in 180usr/10sys/201real ms.
Pass 2: analyzed script: 1 probe(s), 2 function(s), 0 embed(s), 0 global(s) using 87916virt/22168res/2816shr kb, in 10usr/0sys/8real ms.
Pass 3: translated to C into "/tmp/stapUAkcfg/stap_bb7ab36de6e52e5ead064527393ebde2_790.c" using 87916virt/22376res/3008shr kb, in 0usr/0sys/1real ms.
Pass 4: compiled C into "stap_bb7ab36de6e52e5ead064527393ebde2_790.ko" in 3040usr/380sys/3535real ms.
Pass 5: starting run.
hello world
Pass 5: run completed in 0usr/30sys/297real ms.

 

 

参考:

https://sourceware.org/systemtap/wiki/SystemTapOnCentOS

http://www.cnblogs.com/hazir/p/systemtap_introduction.html

http://www.ibm.com/developerworks/cn/linux/l-systemtap/

 

0
3
分享到:
评论

相关推荐

    centos7.4.1708 的systemtap的rpm包及其依赖

    在CentOS 7.4.1708这个特定的环境中,SystemTap通过RPM(Red Hat Package Manager)包的形式提供,使得用户能够方便地安装和管理Systemtap及相关依赖。 SystemTap的主要功能包括: 1. **系统性能分析**:SystemTap...

    适用于 centos7安装的 bpftrace工具rpm包

    在Linux系统管理中,经常会遇到需要安装和配置特定工具的情况,本文将详细讲解如何在CentOS 7上安装适用于该系统的bpftrace工具。bpftrace是一款强大的动态跟踪工具,它利用Berkeley Packet Filter (BPF) 架构提供...

    Linux学习之CentOS

    ### Linux学习之CentOS知识点详解 #### 一、前言 在IT领域,尤其是对于希望从事J2EE后台开发的程序员来说,掌握Linux操作系统是非常重要的一步。本文将围绕CentOS这一特定版本的Linux进行深入探讨。 #### 二、...

    SystemTap_Beginners_Guide.pdf

    SystemTap的基本用途之一是对Linux系统进行进程跟踪,这是通过内核中各种事件来实现的,如函数调用、网络包的接收与发送等。这使得SystemTap成为一个强大的工具,用于系统优化、性能调试和故障排除。 SystemTap的...

    centos学习文档资源

    - 完成配置后启动虚拟机,并加载 CentOS 安装 ISO 文件。 - 进入安装向导,按照提示完成系统安装。 #### 四、虚拟机配置 - **配置要点**: - **选择合适的网络类型**:NAT 模式适用于大多数场景,可以轻松实现...

    systemtap-client-4.0-13.el7.x64-86.rpm.tar.gz

    RPM代表“Red Hat包管理器”,是一种软件包管理系统,用于在Red Hat及其衍生系统(如Fedora和CentOS)中管理和安装软件。压缩包中的.tar.gz扩展名表明这是使用tar工具归档并经过gzip压缩的文件。 文件中还包含了...

    devtoolset-8-systemtap-3.3-1.bs1.el7.x86_64.rpm

    离线安装包,亲测可用

    systemtap-runtime-python2-4.0-13.el7.x64-86.rpm.tar.gz

    此外,由于SystemTap的高级特性,它的使用通常需要一定的权限,如root权限,因此安装和运行SystemTap相关工具往往需要管理员权限。这也解释了为什么安装指令中使用了sudo来执行RPM安装命令。系统管理员在使用...

    systemtap-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

    systemtap-server-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-server-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-server-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -...

    systemtap-runtime-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-runtime-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-runtime-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm...

    systemtap-exporter-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-exporter-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-exporter-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo ...

    systemtap-devel-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-devel-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-devel-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -...

    systemtap-client-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-client-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-client-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -...

    systemtap-initscript-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-initscript-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-initscript-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 ...

    systemtap-runtime-virthost-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-runtime-virthost-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-runtime-virthost-4.5-3.el8.tar.gz #Step2、进入解压后的目录...

    systemtap-sdt-devel-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-sdt-devel-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-sdt-devel-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo...

    systemtap-runtime-java-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-runtime-java-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-runtime-java-4.5-3.el8.tar.gz #Step2、进入解压后的目录,执行...

    systemtap-runtime-virtguest-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-runtime-virtguest-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-runtime-virtguest-4.5-3.el8.tar.gz #Step2、进入解压后的...

    systemtap-runtime-python3-4.5-3.el8.x64-86.rpm.tar.gz

    Centos8操作系统systemtap-runtime-python3-4.5-3.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf systemtap-runtime-python3-4.5-3.el8.tar.gz #Step2、进入解压后的目录,...

Global site tag (gtag.js) - Google Analytics