Systemtap工具查看系统资源使用

http://www.xbwolf.com/507

http://blog.csdn.net/kafeiflynn/article/details/6429976

安装步骤yum install systemtap

/usr/share/doc/systemtap-client-2.7/examples/

要遵循stap的写法,要求2.6.11内核以上的机器使用。

初次访问报错:

emantic error: while resolving probe point: identifier ‘kernel’ at /usr/share/systemtap/tapset/linux/vfs.stp:918:19
source: probe vfs.write = kernel.function(“vfs_write”)

semantic error: missing x86_64 kernel/module debuginfo [man warning::debuginfo] under ‘/lib/modules/2.6.32-431.23.3.el6.x86_64/build’

semantic error: while resolving probe point: identifier ‘vfs’ at inodewatch.stp:3:7
source: probe vfs.write, vfs.read

semantic error: no match

测试机器是: centos6

yum装的有kernel-devel  kernel-headers gcc elfutils

通过 http://debuginfo.centos.org/6/x86_64/  下载kernel-debug-debuginfo 以及kernel-debuginfo-common

主要要下载对应内核版本的,例如测试机器下载

kernel-debug-debuginfo-2.6.32-431.23.3.el6.x86_64.rpm    260M左右

kernel-debuginfo-common-x86_64-2.6.32-431.23.3.el6.x86_64.rpm   40m左右

rpm安装好后执行

WARNING: cannot find module nfs debuginfo: No DWARF information found [man warning::debuginfo]
WARNING: cannot find module sunrpc debuginfo: No DWARF information found [man warning::debuginfo]

说明包没下载对

stap-prep 命令查看到

Need to install the following packages:
kernel-debuginfo-2.6.32-431.23.3.el6.x86_64

发现与之前找到的包不一致。这点要仔细。。。。

通过:stap -v -e ‘probe vfs.read {printf(“read performed\n”); exit()}’  测试是否执行成功,从pass1最后到pass5

前面是安装,下面开始说怎么用:

在/usr/share/doc/systemtap-client-2.7/examples/目录下,有很多脚本

(通过褚霸大神的命令)

stap -e ‘probe vfs.add_to_page_cache {printf(“dev=%d, devname=%s, ino=%d, index=%d, nrpages=%d\n”, dev, devname, ino, index, nrpages )}’

看到此时段应用很小

上一篇文章我们创建了test.data,此刻这个文件5G大小,我们通过另一个终端CP一个,可以看到有大量的设备写入

如:

dev=211812353, devname=xvda1, ino=1058100, index=2, nrpages=2
dev=211812353, devname=xvda1, ino=1058100, index=3, nrpages=3
dev=211812353, devname=xvda1, ino=1058100, index=4, nrpages=4
dev=211812353, devname=xvda1, ino=1058100, index=5, nrpages=5
dev=211812353, devname=xvda1, ino=1058100, index=6, nrpages=6
dev=211812353, devname=xvda1, ino=1058100, index=7, nrpages=7
dev=211812353, devname=xvda1, ino=1058100, index=8, nrpages=8
dev=211812353, devname=xvda1, ino=1058100, index=9, nrpages=9
dev=211812353, devname=xvda1, ino=1058100, index=10, nrpages=10
dev=211812353, devname=xvda1, ino=1058100, index=11, nrpages=11

同样一个文件被频繁写入,被谁写入如何查

ls -al /dev/xvda1

brw-rw—- 1 root disk 202, 1 Oct 27 09:07 /dev/xvda1

cp 一个文件。通过stat -c “%i”  文件查到inode

stap inodewatch.stg  202 1  ****

cp(2514) vfs_read 0xca00001/138740
cp(2514) vfs_read 0xca00001/138740
cp(2514) vfs_read 0xca00001/138740

查到是cp进程引起

时间: 2024-08-09 02:20:57

Systemtap工具查看系统资源使用的相关文章

Linux下使用top/vmstat查看系统资源

vmstat 命令是常见的Linux性能监控工具,报告关于内核线程.虚拟内存.磁盘.陷阱和 CPU 活动的统计信息.由 vmstat 命令生成的报告可以用于平衡系统负载活动.系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和. vmstat使用 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数. top使用 区别top命令 top命令用于显示系统当前的进程和其他状况:top是一个动态显示过程,

查看系统资源(iostat,top,vmstat,mpstat)

维护服务器的时候,要经常查看系统资源的,可以了解一下服务器的运行情况.系统优化时,比如使用memcache时,我要决定分配多少内存给他合适呢,mysql的innodb的参数优化也要考虑到内存使用率,i/o的频繁程度啊,如果使用apache的话,要启动多少个httpd比较合适呢,如果数据库的数据太大,我要看看是不是增加磁盘呢等等,这个时候,我们要知道,有多少资源可用,才能更好的优化我们的系统. 1.top命令查看cpu,mem的使用情况 top - 13:54:34 up  4:29,  1 us

Linux查看系统资源占用

Linux查看系统资源占用 在系统维护的过程中,随时可能有需要查看 CPU和内存的使用率,并根据相应信息分析系统状况的需求.本文介绍一下几种常见的Linux系统资源查看命令. 1.总体内存占用的查看 命令:free 图1 free命令查看内存占用 (1) free命令默认是以kb为单位显示的,可以用free -m 用Mb单位来显示. (2) Mem行 :   total = used  + free    其中buffers和cached虽然计算在used内, 但其实为可用内存. (3) Mem

如何用SPY++工具查看窗体的句柄

我安装的是vs2012,先找到SPY++工具打开 打开方式: 方式1:通过路径(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2012\Visual Studio Tools)找到SPY++工具 方式2:开始界面找到Microsoft Visual Studio 2012,展开找到SPY++ 2.打开Spy++工具 3.打开监视--查找窗体 4.使用工具查看QQ程序界面 将可移动的光标移动

IE11 F12 开发人员工具 查看 Cookie

参考网址:Using the F12 developer tools in IE11 Step1 : IE11 => F12 打开 开发人员工具 Step2:开发人员工具 => 网络F5 启用网络流量捕获 Step3:IE11 =>输入和访问相关网址 Step4:开发人员工具 => 网络 => 详细信息 => Cookie IE11 F12 开发人员工具 查看 Cookie

用Meta工具查看IMEI和IMEISV保存的位置

1.首先我们先来使用Meta工具查看IMEI保存的位置 我们打开meta工具,找到NVRAM_EF_IMEI_IMEISV_LID,如图: 2.我们打开meta工具找到System related LID,找到NVRAM_EF_SYS_CACHE_OCTET_LID下第十个字节,如图:(这里我们需注意的是IMEI SVN并不是和IMEI保存在一起,而是分开存放在NVRAM_EF_SYS_CACHE_OCTET_LID下面)

ubuntu查看系统资源占用(内存,cpu和进程)

http://blog.csdn.net/vivian187/article/details/51476043 http://bluexp29.blog.163.com/blog/static/33858148201071534450856/ ubuntu查看系统资源占用(内存,cpu和进程) 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 21504965 AT qq.com 完成时间:2017/12/11 14:32 版本:V1.0 2010-08-15 03:44:50|  分类: ubunt

HTTP入门(二):用Chrome开发者工具查看 HTTP 请求与响应

HTTP入门(二):用Chrome开发者工具查看 HTTP 请求与响应 本文简单总结HTTP的请求与响应. 本文主要目的是对学习内容进行总结以及方便日后查阅. 详细教程和原理可以参考HTTP文档(MDN). 本文版权归马涛涛所有. 本文所引用的图片和文字版权归原作者所有,侵权删. 如有错误请在下方评论区指出,欢迎积极讨论. 查看请求 打开 Network 地址栏输入网址 在 Network 点击,查看 request,点击「view source」 可以看到请求的前三部分了 如果有请求内容的第四

用什么工具查看内存溢出,结合具体实例讲一下具体的过程

果通过指令的话,一般先调用jps查看到具体的pid,然后调用jstat来查看运行时的内存,以及GC的频率等,然后通过jstack查看线程是有阻塞.死锁.循环等,最后通过jmap生成的堆快照进行分析内存溢出的地方. 使用可视化工具的话: 如果是jConsole,可以通过内存窗口查看堆以及各个部分的内存情况,通过线程窗口可以查看线程是否等待.循环.死锁等情况. 是 同VisualVM可以定位到具体内存溢出的位置.通过VisualVM可以观察堆.新生代.老年代.永久代的情况,同样通过线程查看是否有阻塞