安裝完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系統調用顯示鎖争用。