如何利用SystemTap统计函数执行耗时详解
作者:源代码 发布时间:2022-07-01 20:34:42
标签:systemtap,统计函数,执行耗时
前言
当我们需要对应用程序进行系能分析时,我们通常可以使用perf或者火焰图。 但是这些工具通常只能定性问题,发现那些函数占用cpu较多,需要优化。但是给不出定量的数据, 比如这个函数的耗时情况,它耗时1ms还是5ms。
因此在不在代码中加入统计耗时的代码的情况,我们可以使用SystemTap来统计应用程序的耗时情况。
SystemTap可以跟踪内核函数和用户态进程,当我们跟踪用户态进程时,需要使用其process模块。
查找函数符号
很多情况下,代码在执行时,其函数符号并不一定是代码中写的名称,因此我们可以使用以下脚本打印 出应用程序中在调用的函数符号。
probe process("/data0/app").function("*") {
println(probefunc())
}
然后执行
stap echo.stp
其会打印出/data0/app这个程序运行时调用到的各个函数名,此处最好填绝对路径。我们可以从中找到 我们需要统计的函数名称。
统计函数耗时
我们可以使用SystemTap内置的直方图来展示耗时的分布。我们有两种直方图函数可以使用:
@hist_linear(v, start, stop, interval) # 打印start-stop区间interval间隔的直方图
@hist_log(v) # 打印以2为底指数分布的直方图
统计脚本:
global sends # 声明全局的统计存储容器
probe process("/data0/app").function("git.intra.xx.send").return { # function中为函数名,同时支持通配符*等,在该函数return时计算耗时
sends <<< gettimeofday_us() - @entry(gettimeofday_us()) # 以微秒精度来统计,entry方法将一个表达式放置于函数入口处
}
probe timer.s(10) { # 每10s打印一次直方图
print(@hist_log(sends))
}
然后执行stap elaspe.stp
即可获得每10秒统计的结果,如果希望每10秒清空重新统计的话, 可以将打印函数修改为:
probe timer.s(10) { # 每10s打印一次直方图
print(@hist_log(sends))
delete sends # 清空数据
}
总结
参考
1.148. systemtap
来源:https://lrita.github.io/2017/09/16/systemtap-get-function-elapse/
0
投稿
猜你喜欢
- WordPress 2.5的原生相册功能其实很好用的,我觉得现在已经无必要再去找一款专门的相册程序,对于一般的blogger而言。相册在后台
- 首先确认本机ip可以看出一下信息:本机ip: 192.168.1.162网关:192.168.1.1DNS服务器:192.168.1.1虚拟
- 一。域名管理面板1。在Godaddy账户中点击Domain manage进入域名管理2。域名管理界面如下面两个图片所示,左侧是管理选项,右侧
- 1. 与备份有关的VMWare基础知识1.1 VMware 虚机磁盘在 ESXi 宿主机上的文件简单来说,虚机的每个虚拟磁盘由ESXi 宿主
- 网络赚钱的方法很多。目前,Google Adsense是多数人最佳的选择。一些基本的优化技巧可以使您的Google Adsense收入翻倍。
- 假如你的托管帐户托管了一个二级域名,你可以通过FTP上载文档到那里,这是从你的本地机传输你的网站到你的托管帐户的一种方法。在你的主域名目录里
- 前言NAT转发:简单地说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就
- 注意:此文为个人修改办法,非官方!请不要误会!你可以不使用本人提供的代码,如果你使用了本人提供的代码,我就认为你愿意自行担负可能造成的错误和
- 老马说,你现在混日子,小心将来日子混了你。我们中的很多站长都在混日子,也许,我们仿佛找到了理想,伸出一把手却又没有抓住,一点感觉都没有似的。
- 5天前美图秀秀[点击本站下载]软件才刚刚发布过2.0周年纪念版,今天又以迅猛速度推出2.0.1小幅度升级版。虽然只是小幅度的升级,但是这次开
- 做不成也没关系,可以伪装一下。RSS图标不显示订阅数。托管RSS。更新频率等于或低于每日一篇,但不低于每周一篇。凡文内链接全部为站内链接,是
- A、卸载WScript.Shell 和 Shell.application 组件,将下面的代码保存为一个.BAT文件执行(分2000和200
- 这个系统是国内非常流行的视频点播系统,之前的1.5版本漏洞非常多,2.0版本在安全方面有所提高,但是依然有漏洞存在。看代码\inc\ajax
- 2007年一月底,千呼万唤的Windows Vista隆重上市,同时微软服务器家族的下一力作,Longhorn Server也一步步向我们走
- 上星期我和一个有实力的站长交谈,学到了不少东西。他做网站已经有7年的时间,放在现实中算得上是“元老”了。但是,网络这东西变化、更新太快,过去
- 一台服务器 几乎所有网站打开网页 甚至HTML网页 都出现了<iframe src="http://xxxdfsf
- 什么是ssh管理员可以通过远程登陆的方式,对通过网相连的分散于各处的多台主机进行管理操作。管理员可以对远程主机进行如下操作: 远程
- 在比较复杂的网络环境中,用户需要通过不同的网关访问不同的网络服务器,比如笔记本电脑用户在家时使用ADSL,在单位使用局域网时就需要切换不同的
- 2007年末和一个朋友创建一个小说站,可谓是困难重重,处处碰壁。经过总结和分析,这并非是我一个人所遇到的问题,而是中国草根站长界普遍的问题。
- 1.在百度提交网址但现在百度自动收录的速度已经让众人所知,所以提出以下的方法。紧供所有的seo爱好者参详,学习。2.创建百度空间一般来说,创