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進程引起


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM