种豆资源网

当前位置:首页 > 经验 / 正文

systemtap

(2021-04-10 21:15:46) 经验

systemtap

SystemTap 是监控和跟蹤运行中的Linux 核心的操作的动态方法。这句话的关键字是动态,因为SystemTap 没有使用工具构建一个特殊的核心,而是允许您在运行时动态地安装该工具。

基本介绍

  • 中文名:systemtap
  • 外文名:systemtap
  • 名称:systemtap
  • 实现方式:Kprobes 的套用编程接口(API)
  • 必要软体:kernel-debuginfo、elfutils RPM
  • 作用:监控和跟蹤运行中的Linux核心
  • 运行条件:root许可权
  • 相似技术:DTrace

简介

SystemTap 是监控和跟蹤运行中的Linux 核心的操作的动态方法。这句话的关键字是动态,因为SystemTap 没有使用工具构建一个特殊的核心,而是允许您在运行时动态地安装该工具。
SystemTap 与一种名为DTrace 的老技术相似,该技术源于Sun Solaris 作业系统。在DTrace 中,开发人员可以用D 程式语言(C 语言的子集,但修改为支持跟蹤行为)编写脚本。DTrace 脚本包含许多探针和相关联的操作,这些操作在探针“触发” 时发生。例如,探针可以表示简单的系统调用,也可以表示更加複杂的互动,比如执行特定的代码行。清单1 显示了DTrace 脚本的一个简单例子,它计算每个进程发出的系统调用的数量(注意,使用字典将计数和进程关联起来)。该脚本的格式包含探针(在发出系统调用时触发)和操作(对应的操作脚本)。DTrace 是Solaris 最引人注目的部分,所以在其他作业系统中开发它并不奇怪。
DTrace 是在Common Development and Distribution License (CDDL) 之下发行的,并且被移植到FreeBSD 作业系统中。
另一个非常有用的核心跟蹤工具是ProbeVue,它是IBM 为IBM? AIX? 作业系统6.1 开发的。您可以使用ProbeVue 探查系统的行为和性能,以及提供特定进程的详细信息。这个工具使用一个标準的核心以动态的方式进行跟蹤。考虑到DTrace 和ProbeVue 在各自的作业系统中的巨大作用,为Linux 作业系统策划一个实现该功能的开源项目是势不可挡的。SystemTap 从2005 年开始开发,它提供与DTrace 和ProbeVue 类似的功能。许多社区还进一步完善了它,包括Red Hat、Intel、Hitachi 和IBM 等。

安装SystemTap

在安装SystemTap之前,需要确保系统中已经安装了其它两个软体包:kernel-debuginfo RPM:SystemTap需要通过核心调试信息来定位核心函式和变数的位置。对于通常的发行版,并没有安装kernel-debuginfo
RPM,我们可以到发行版的下载站点下载。
elfutils RPM:SystemTap需要elfutils软体包提供的库函式来分析调试信息。目前的SystemTap要求安装elfutils-0.123以上版本。目前最新的版本是0.124-0.1。如果需要,我们可以从SystemTap的站点下载RPM或者源码来升级。接下来就可以安装SystemTap了,这有通过RPM或者源码安装两种方式:
(1).通过RPM安装Fedora Core 6预设情况下已经安装了systemtap。
(2).通过源码安装:从SystemTap的FTP站点下载最新的源码
然后安装如下:
/root > tar -
jxf SystemTap
/root > cd src
/root/src> ./configure
/root/src> make
/root/src> make install

运行SystemTap

运行SystemTap首先需要root许可权。
运行SystemTap有三种形式:
(1).从档案(通常以.stp作为档案名称后缀)中读入并运行脚本:stap [选项] 档案名称
(2).从标準输入中读入并运行脚本:stap [选项] -
(3).运行命令行中的脚本:stap [选项] -e 脚本
(4).直接运行脚本档案(需要可执行属性并且第一行加上#!/usr/bin/stap):
./脚本档案名称使用"Ctrl+C"中止SystemTap的运行。
systemtap的选项还在不断的扩展和更新中,其中最常用的选项包括:
-v -- 列印中间信息
-p NUM -- 运行完Pass Num后停止(预设是运行到Pass 5)
-k -- 运行结束后保留临时档案不删除
-b -- 使用RelayFS档案系统来将数据从核心空间传输到用户空间
-M -- 仅当使用-b选项时有效,运行结束时不合併每个CPU的单独数据档案
-o FILE -- 输出到档案,而不是输出到标準输出
-c CMD -- 启动探测后,运行CMD命令,直到命令结束后退出
-g -- 採用guru模式,允许脚本中嵌入C语句
其它更多选项请参看stap的手册。
搜索
热门图片
最近更新
随机推荐

Powered By 种豆资源网||