如何利用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/


猜你喜欢
- “淘宝客”是指帮助淘宝卖家推广商品赚取佣金的人(之前叫淘客)。只要获取淘宝商品的推广链接,让买家通过您的推广链接进入淘宝店铺购买商品并确认付
- 服务器上有一个任务进程,当我们使用ps -ef | grep task查看时,只能得到一些最基本的信息,假如我们需要知道对应的文件路径、启动
- 今天介绍Godaddy主机用户怎样使用mod_rewrite首先来介绍下什么是mod_rewrite: Mod_rewrite是默认情况下安
- Web性能优化最佳实践中最重要的一条是减少HTTP请求,它也是YSlow中比重最大的一条规则。减少HTTP请求的方案主要有合并JavaScr
- 10月31日消息,消息人士透露,思科和EMC将联手销售用于云计算服务的新款网络设备、计算机和存储系统。据国外媒体报道称,代号为&ld
- OpenSUSE 自带了下列 FTP 服务器端程序,自行选择一个:* pure-ftpd* vsftpd* ftpd (包含在 krb5-a
- 本教程为大家介绍 UCenter Home 2.0beta版的安装方法(以虚拟主机为例)。在安装 UCenter Home 2.0beta版
- 很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,做了很多次试验,结合以前的排错经验
- 本期教程就分三部分为大家讲解Discuz! 7.0升级到Discuz! 7.1的过程:升级前的准备、升级中的注意事项以及升级后需要进行的一些
- 我很庆幸,自己从一个初二文化的不良青年到现在拥有五个站的小站长,这个过程很简单也很艰辛。2004年是我第一次接触网页,在中联网申请了自己的第
- 目录一、简介二、配置步骤一、简介1、NAT模式(VMnet8)可以实现虚拟机之间、虚拟机和主机之间以及虚拟机和外部的网络通信;2、虚拟机的I
- GoDaddy主机帐户的操作系统决定着自己的网站可以使用的脚本语言及网站功能。下面是GoDaddy虚拟主机帐户支持的脚本语言及功能列表:&n
- 当你拥有自己的网站时,能够及时发现网站中的任何问题是非常有帮助的。这里有一些免费开源的服务器/互联网监控工具,它们可以监视你的网络架构中出现
- 美国《财富》杂志网络版周四评出了2009年全球最具影响力商界女强人50强,百事可乐董事长兼CEO卢英德(Indra Nooyi)居首,雅虎C
- 核心提示:冷门行业网站站长的该如何坚守,这些年坚持在冷门行业维护小网站的经历,让我有了如下感悟。1、爱好、兴趣是做好一个冷门行业网站的原动力
- 11月7日消息,盛大游戏CEO李瑜今日在2009第二届WEBGAME与SNS社区运营大会上表示,目前的网页游戏行业出来了百家争鸣、百花齐放的
- 攻击者可以通过反弹技术使我们对DDOS攻击更难以防御——利用反弹服务器反弹DDOS的洪水包,也就是说,通过发送大量的欺骗请求数据包(来源地址
- 据国外媒体报道,“威比奖”(Webby Awards)周三颁发了互联网十年10大重要时刻大奖,谷歌、
- 在今天上海召开的派代电子商务年会上,支付宝总裁邵晓锋在接受计世网采访时表示“目前支付市场依然还在培育期,谈市场成熟或者格局为时过早,只有整个
- Apache在一天两万个请求确实不大,但如果在高峰时期出现,而晚间或其它时间没有,呈正态分布,且均是需要时间的下载服务,那负载还是很大的。A