systemtap系列之实用脚本


安装完systemtap相关rpm包之后,

在路径/usr/share/systemtap/testsuite/systemtap.examples/或者/usr/share/doc/systemtap-client-3.0/examples/network/中有所有可实用的脚本。

1.   网络

查看系统中每个进程的网络传输情况:

nettop.stp追踪系统中产生的网络流量。

socket-trace.stp跟踪net/socket.c文件中的所有函数,容易导致系统HUNG住。

tcp_connections.stp实时跟踪TCP链接,获取未认证的,可疑的,不需要的网络请求。

tcpdumplike.stp跟踪udp和tcp包接收,因为有点像tcpdump,但是原理是安全不一样的,tcpdump是在链路层L2的,这个是在L4层比tcpdump高层很多。

       dropwatch.stp 追踪系统丢包情况,通过跟踪kfree_skb来实现,有些类似dropwatch工具,不过只显示了丢包的地址,并没有函数,可以增加参数--all-modules或者老版本的-dkernel,来显示函数名字。

2.   磁盘

disktop.stp输出读写最频繁的10个进程。

iotime.stp跟踪系统中每次open,close,read,write的系统调用并计数,同时记录读写的字节数量即花费时间,最后在close的时候来输出。

       traceio.stp每秒打印一次,IO负载最严肃的前十个10进程。

       traceio2.stp跟踪指定设备的vfs_read和vfs_write。设备参入通过stat -c “0x%D” dirctory来获取。 Dirctory是磁盘所在目录,例如/home.

       inodewatch.stp用来实时观察一个文件的读写,需要输入3个参数,分别是文件的主设备号,次设备号,和inode,可以通过命令stat -c "%D %i" filename来获取.其中得到的设备号中低位是次设备号,高位是主设备号。

       inodewatch2.stp监控进程修改文件属性。

       ioblktime.stp循环打印IO阻塞时间,计算每个设备块IO的等待时间,如果请求的IO被merge了就忽略。

3.   诊断

functioncallcount.stp在监控事件函数被调用的次数。例如:stap  functioncallcount.stp "*@mm/*.c,如果使用通配符容易系统奔溃。

       para-callgraph.stp可以包含两个参数。第二参数用使能或关闭,只有第二个参数触发后,其相关的线程才能出发第一个参数,起到过滤的作用。

       thread-times.stp列出5秒内消耗CPU时间最多的进程,列出用户空间和内核空间的消耗时间。

       timeout.stp跟踪poll,select,epool,itimer,futex,nanosleep,signal系统调用过程超时的次数。

       topsys.stp 用于查找使用系统调用最多的应用。

       syscalls_by_proc.stp列出执行最多的系统调用。

4.   竞争

futexes.stp检测futext系统调用显示锁争用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值