systemtap的安装和使用

简介:



在上篇博客中,笔者介绍了如何三种常用的性能分析工具,其中就提到了systemtap及其前端工具stap。想必读者很好奇,既然systemtap功能这么强大,那么该如何安装和使用它呢?


1. systemtap的安装

下面基于笔者的CentOS系统,分享一下自己的安装步骤:

a.如果CentOS自带的yum的源无法联通,在国内可以更新yum.repos.d:

cd /etc/yum.repos.d ;

mv CentOS-Base.repo CentOS-Base.repo.bk ;

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo;

yum makecache

b.FedoraCentOSRedhat上,可以通过下面的命令来安装ststemtap及其依赖的kernel-develope


yum install systemtap systemtap-runtime

yum install kernel-devel gcc make

如果要对磁盘和网络进行调试,可以安装专门针对这两者的systemap脚本:

yum install tuned-utils-systemtap.noarch

为了使systemtap脚本能够运行,需要安装依赖的内核调试信息包,在现代的OS上可以通过下面的命令一键安装:

stap-prep

如果上面的命令执行失败,很可能需要为当前内核安装相应的package:

yum install kernel-devel-`uname -r`

debuinfo-install kernel-debuginfo-`uname -r`

如果依赖的包已经手动下载了,可以用下面的命令进行安装:

rpm –force -ivh package-names



而在Ubuntu类系统上,可以参考下面的命令进行安装:

apt-get install systemtap

apt-get install linux-headers-generic gcc make


同样也需要准备安装内核调试相关的包:

apt-get install linux-image-debug-generic

ln -s /boot/vmlinux-debug-$(uname -r) \

/lib/modules/$(uname -r)/vmlinux



c.测试是否安装成功

上面的步骤完成之后,可以通过下面的命令来检查安装是否成功:

stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'



2. systemtap的使用

下面说明几种常用的使用方式:


2.1以模块的方式运行

例如从test.stp生成一个能运行在当前内核上的插桩模块test.ko

stap -r `uname -r` -e 'probe vfs.read {exit()} -m simple

如果上面命令执行成功,会生成test.ko,为了让它执行期望的探测工作,用staprun命令把它跑起来:

staprun test.ko


2.2 以命令的方式运行


同样完成上面的任务,可以用下面的命令执行执行:

echo “probe vfs.read exit()} “ | stap -v -

再比如:

stap -v “probe timer.s(1) exit()} “


2.3 以脚本或命令的方式运行

如果把是上面的“probe probe timer.s(1) exit()}”写入到test.stp脚本里,就可以按照下面的方式进行执行:

stap -vvv test.stp

这种方式通常可以跟很多选项:

-o file_name 指定输出文件名

-x procss_id 指定探测进程ID'process_id‘的程序

-esystemTap translator指定一个脚本而非文件

-F执行systemtapflight recorded 模式,并且指定在后台执行


参考文章:

SystemTap_Beginners_Guide


















本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1858234,如需转载请自行联系原作者









相关文章
|
前端开发 定位技术
高德地图进阶开发实战案例(9):涟漪动画标注的实现方案
高德地图进阶开发实战案例(9):涟漪动画标注的实现方案
362 0
|
关系型数据库 MySQL 搜索推荐
mysql point类型的简单使用
什么是point类型数据?举个例子如下:POINT(123.462202 41.804471) 首先建立一个表: DROP TABLE IF EXISTS `tb_point`; CREATE TABLE `tb_point` ( `timesta...
3638 0
|
XML Java 数据库连接
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
834 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
264788 0
|
11月前
|
Linux 数据安全/隐私保护 开发者
Red Hat下载ISO镜像的方法
简介:本文介绍如何注册或登录Red Hat账号,选择并下载Red Hat Enterprise Linux (RHEL)的免费版本,以及激活订阅的步骤。首先访问Red Hat官网注册或登录账号,然后在开发者页面选择免费下载RHEL,最后通过终端命令激活订阅,确保状态已订阅。订阅为期一年,到期后需重新注册以继续享受支持和权益。
4139 17
Red Hat下载ISO镜像的方法
|
9月前
|
供应链 算法 BI
StarRocks 助力首汽约车精细化运营
本文由首汽约车大数据负责人任智红在StarRocks年度峰会上的演讲整理而成,分享了StarRocks在企业内部的应用实践。文章详细介绍了StarRocks如何助力首汽约车实现精细化运营,涵盖运效诊断、供需平衡联动及自助多维分析等核心业务场景。通过引入StarRocks,公司实现了秒级数据处理与查询性能提升,大幅降低了开发和维护成本,推动了数据驱动的业务发展。未来,首汽约车计划进一步整合系统、拓展应用场景,并优化存算分离与资源隔离策略,持续提升数据处理效率与业务稳定性。
|
Ubuntu Linux 网络安全
Docker&Docker Compose安装(离线+在线)
Docker&Docker Compose安装(离线+在线)
19179 1
|
存储 关系型数据库 MySQL
mysql 8.0 时间维度表生成(可运行)
mysql 8.0 时间维度表生成(可运行)
445 0
|
敏捷开发 人工智能 测试技术
提升软件质量的关键——高效软件测试策略与实践
在软件开发过程中,测试是一个至关重要的环节。它不仅决定了产品的可靠性和用户体验,还直接影响到企业的声誉和市场竞争力。本文将详细探讨如何通过科学的测试策略和方法,确保软件质量达到高标准的要求。从测试流程的设计、自动化测试工具的应用,到持续集成和持续部署的实践,我们将全面解析如何在软件开发中实施有效的测试,以降低错误率,缩短上市时间,并提供优质的软件产品。
606 0
|
监控 Linux 数据处理
Linux中的nsenter命令:深入容器内部,实现无缝交互
`nsenter`是Linux工具,用于进入容器的命名空间,实现与容器内环境的交互。它基于Linux内核的命名空间功能,支持网络、PID等多类型隔离。`nsenter`允许在不停止容器的情况下调试和操作,如 `-t` 指定PID进入命名空间,`-n` 进入网络命名空间。示例包括使用`nsenter`查看容器进程或网络配置。使用时注意目标进程状态,理解命名空间类型,并谨慎操作。

热门文章

最新文章