Linux效能測試命令系列(5) strace

2021-07-14 07:41:05 字數 1864 閱讀 8490

功能: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為單位顯示記憶體使用情況...