功能:trace system calls and signals
strace能夠跟蹤程序使用的系統呼叫,並顯示呼叫過程資訊。本文章只給出比較常用的命令。
注:(1)a.out表示要被strace跟蹤的使用者可執行程式,
(2)`pidof ./a.out`表示要被strace跟蹤的正在執行的a.out對應的程序pid
(3)由於操作起來很簡單,暫時不給出測試用例。
1)跟蹤指定程式
$strace ./a.out
2)跟蹤指定程序
$strace -p $(pidof ./a.out)
或者$strace -p `pidof ./a.out`3
3)將strace顯示內容輸出到指定日誌中
$strace -p $(pidof ./a.out) -o strace.log
$strace ./a.out -o strace.log
4)顯示系統呼叫的執行時間
$strace -t ./a.out#執行時間的單位為秒
$strace -tt ./a.out #執行時間的單位為毫秒
6)顯示執行系統呼叫介面的使用者程式**行位址
$strace -i ./a.out
7)跟蹤程序中fork()之後的程序
$strace -f ./a.out
8)將所有程序的跟蹤結果輸出到指定日誌filename.中,其中是每個程序的程序號
注:filename是由-o filename提供的
$strace -ff -o strace.log ./a.out
將會產生strace.log.6800、strace.log.6801類似以程序號結尾命令的檔案log日誌。
9)strace還可以跟蹤指定的事件(event)
$strace -e trace=write ./a.out#表示只跟蹤系統呼叫介面write的呼叫跟蹤資訊
$strace -e trace=write,read ./a.out #跟蹤write,read這兩者的呼叫
$strace -e trace=file ./a.out #只跟蹤有關檔案操作的系統呼叫
$strace -e trace=process ./a.out #只跟蹤有關程序控制的系統呼叫
$strace -e trace=network ./a.out #只跟蹤與網路有關的系統呼叫
$strace -e trace=signal ./a.out #只跟蹤與系統訊號有關的系統呼叫
$strace -e trace=ipc ./a.out #只跟蹤與程序間通訊有關的系統呼叫
10)還可以跟蹤指定的系統訊號
$strace -e signal != sigio ./a.out#表示不跟蹤isgio系統訊號
$strace -e signal = sigpipe #表示跟蹤sigpipe系統訊號
11)還可以對系統介面函式操作的檔案進行跟蹤
$strace -e read=3,5 ./a.out #輸出從指定檔案中讀出的資料
$strace -e write=3 ./a.out #輸出寫入到指定指定檔案中的資料
12)比較重要的乙個使用是:統計每個系統呼叫的執行時間、次數和出錯次數等資訊!
$strace -c ./a.out
這是乙個很有用的選項,當需要對指定程式進行系統呼叫的熱點進行查詢時!
給出-c選項的使用示例:
從執行結果看出,-c選項的資訊統計列有:執行時間的半分比、執行的時間、被呼叫次數、呼叫時出錯次數、對應的syscall名稱
最後還有一行時總結以上所有的資訊總和。
《完》
Linux效能測試命令系列(2) pstree
功能 顯示當前系統的程序樹 step2 示例 說明1 上面表示init是系統中所有程序的父程序 2 如何識別程序含有執行緒 init vboxservice 7 表示vboxservice程序有7個執行緒vboxservice,識別符 有 括起來的是執行緒 3 如何識別程序含有子程序 init ud...
5個Linux效能命令
使用幾個命令就可以管理linux系統的效能了,下面列出了5個最常用的linux效能命令,包括top vmstat iostat free和sar,它們有助於系統管理員快速解決效能問題。1 top top命令不僅顯示了當前核心服務的任務,還顯示了許多關於主機狀態的統計資料,預設情況下,它每隔5秒自動更...
Linux效能測試 free命令
命 令 free 功能說明 顯示記憶體狀態。語 法 free bkmotv s 間隔秒數 補充說明 free指令會顯示記憶體的使用情況,包括物理記憶體,虛擬的交換檔案記憶體,共享記憶體區段,以及系統核心使用的緩衝區等。參 數 b 以byte為單位顯示記憶體使用情況。k 以kb為單位顯示記憶體使用情況...