网站运营
位置:首页>> 网站运营>> 如何利用SystemTap统计函数执行耗时详解

如何利用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.创建百度空间一般来说,创
手机版 网站运营 asp之家 www.aspxhome.com