如何利用SystemTap統計函式執行耗時詳解

2022-09-26 15:15:18 字數 999 閱讀 6615

前言

當我們需要對應用程式進行系能分析時,我們通常可以使用perf或者火焰圖。 但是這些工具通常只能定性問題,發現那些函式占用cpu較多,需要優化。但是給不出定量的資料, 比如這個函式的耗時情況,它耗時1ms還是5ms。

因此在不在**中加入統計耗時的**的情況,我們可以使用systemtap來統計應用程式的耗時情況。

systemtap可以跟蹤核心函式和使用者態程序,當我們跟蹤使用者態程序時,需要使用其process模組。

查詢函式符號

很多情況下,**在執行時,其函式符號並不一定是**中寫的名稱,因此我們jkdizaiz可以使用以下指令碼列印 出應用程式中在呼叫的函式符號。

probe process("/data0/app").function("*")

然後執行

stap echo.stp

其會列印出/data0/app這個程式執行時呼叫到的各個函式名,此處最好填絕對路徑。我們可以從中找到 我們需要統計的函式名稱。

統計函式耗時

我們可以使用systemtap內建的直方圖來展示耗時的分布。我們有兩種直方圖函式可以使用:

@hist_linear(v, start, stop, interval) # 列印start-stop區間interval間隔的直方圖

@hist_log(v) # 列印以2為底指數分布的直方圖

統計指令碼:

glob sends # 宣告全域性的統計儲存容器

probe process("/data0/app").function("git.intra.xx.send").return

probe timer.s(10)

然後執行stap elaspe.stp即可獲得每10秒統計的結果,如果希望每10秒清空重新統計的話, 可以將列印函式修改為:

probe timer.s(10)

總結參考

1.148. systemtap

本文標題: 如何利用systemtap統計函式執行耗時詳解

本文位址:

如何統計和分析利用網路大資料?

大資料給網際網路帶來的是空前的資訊大 它不僅改變了網際網路的資料應用模式,還將深深影響著人們的生產生活。深處在大資料時代中,人們認識到大資料已經將資料分析的認識從 向後分析 變成 向前分析 改變了人們的思維模式,但同時大資料也向我們提出了資料採集 分析和使用等難題。在解決了這些難題的同時,也意味著大...

利用perl 改寫awk統計

root dwh1 log who dwetl pts 0 2015 03 05 16 29 10.130.136.56 dwetl pts 1 2014 12 12 20 41 10.129.133.154 dwetl pts 2 2015 03 09 15 57 10.129.224.28 ro...

python統計excel利用pandans的分組

python統計excel利用pandans的分組,其中還用列表資料求差集 csv資料結構 有三個按照日期統計的csv 需要統計出這三張csv按照areaid缺少的type和bdtype 其中type 1,2,3,4 bdtype 1,3,4 原始碼如下 第一步資料初步處理刪除非必須列 coding...