0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

杀手级分析——bootchart

Linux阅码场 来源:Linuxer 作者:Linuxer 2020-09-08 09:13 次阅读

之前小弟一直在宣传推广火焰图,结果是很多童鞋凡事都用火焰图。说实话,火焰图特别适合分析运行时热点(无论是on-cpu、off-cpu、还是内存等,火焰图的想象力可以无穷放大),但是你要分析一个的如果是一个时序问题,比如系统启动的慢、一个软件启动的慢,用火焰图固然可能有一点帮助,但是帮助肯定很微妙。

因为这种某个过程慢的问题,是一个时序问题。不是一个运行时热点的问题,所以你最重要的是画出来你的这个过程的时序图。这里面说不定有I/O的牵绊,说不定就是狂占CPU,说不定谁傻不拉几地在sleep。

Linux界有一个杀手级分析Linux本身启动慢的工具,叫做bootchart,它其实把启动过程中进程的IO,CPU占用情况进行了描述。注意这类图都有一个共同特点,横轴是时间,纵轴是CPU、线程等的状态(运行、睡眠、IO什么的)。

bootchart确实有利于分析开机过程,但是你平时某个软件启动慢呢?或者更广泛地说,某个特定过程特别慢呢?或者更加更加广泛地说,我写的程序在系统里面是怎么在运行,几个线程怎么在跑?我们则要描绘出它的时序图。

这个时候,我们可以用perftimechart,比如,下面我们写一个很简单的包含了2个线程周期循环做事情和睡眠的代码:

我们运行上面这个a.out,下面我们用perf录制系统的sched情况:

~$ sudo perf sched record -a^C[ perf record: Woken up 1 times to write data ][perfrecord:Capturedandwrote1.909MBperf.data(9039samples)]

接下来生成timechart:

~$ sudo perf timechartWritten6.4secondsoftracetooutput.svg.

我们用firefox打开这个时序图:

时序图上我们看到了我的8个CPU的运行情况,以及a.out中2个线程一会儿蓝色(running)一会灰色(sleeping)的情况。我们看到,系统差不多在用CPU2和CPU7跑我们a.out里面的2个占用CPU比较高线程。

不过,这类工具里面压轴的不是perf timechart,说实话,有点太粗糙了!我们来看看大名鼎鼎的内核鲨鱼——kernelshark。

下面我们用trace-cmd来录制sched相关的trace点:

~$ sudo trace-cmd record -e 'sched_wakeup*' -e sched_switch -e 'sched_migrate*'Hit Ctrl^C to stop recording^CCPU0 data recorded at offset=0x60e000 61440 bytes in sizeCPU1 data recorded at offset=0x61d000 184320 bytes in sizeCPU2 data recorded at offset=0x64a000 24576 bytes in sizeCPU3 data recorded at offset=0x650000 12288 bytes in sizeCPU4 data recorded at offset=0x653000 12288 bytes in sizeCPU5 data recorded at offset=0x656000 86016 bytes in sizeCPU6 data recorded at offset=0x66b000 172032 bytes in sizeCPU7 data recorded at offset=0x69500028672bytesinsize

用kernelshark来打开录制的点:

~$ kernelshark trace.datLoading"trace.dat"

看到下面的图形界面:

我们可以在UI上面进行各种操作,比如我们关注a.out,我们就选择task:

我们得到这样的视图:

比如我图上画的那个点,a.out的颜色发生了变化,而下面的文字则表达了发生变化的原因是调度,调度的目标是swapper,这个调度点发生在CPU4上面:

如果你期待的是一个横轴是时间,纵轴是每个线程、CPU在某个时间段里面在干什么的图,kernelshark,你当然值得拥有。

原文标题:宋宝华:当Linux内核遭遇鲨鱼—kernelshark

文章出处:【微信公众号:Linuxer】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11032

    浏览量

    207297

原文标题:宋宝华:当Linux内核遭遇鲨鱼—kernelshark

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OpenHarmony之开机优化

    OpenHarmony已经支持了Bootchart工具,我们可以直接使用Bootchart工具,Bootchart工具介绍如下: 概述 Bootchart是一个用于系统启动过程性能
    发表于 07-01 16:39

    江波龙分析存储市场:企业产品受青睐,价格或将温和上涨

    近日,江波龙在接受行业机构调研时,对当前的存储市场状况进行了深入分析。根据市场机构的数据,当前原厂供应正逐步向企业产品倾斜,显示出企业市场对存储晶圆的强劲需求。在此背景下,整体存储晶圆的供应依然处于偏紧状态。
    的头像 发表于 06-05 10:46 447次阅读

    概伦电子宣布正式推出芯片HBM静电防护分析平台ESDi

    近日,概伦电子宣布正式推出芯片HBM静电防护分析平台ESDi和功率器件及电源芯片设计分析验证工具PTM,并开始在国内外市场广泛推广。
    的头像 发表于 05-28 10:09 272次阅读

    无人机遭遇“神秘杀手”:揭秘反无人机技术的崛起

    随着无人机技术的广泛应用,其带来的安全隐患也日益凸显。为了应对这一挑战,反无人机技术应运而生,成为无人机领域的“神秘杀手”。本文特信无人机反制小编将通过具体实例,探讨反无人机技术的发展现状、应用场景以及未来趋势。
    的头像 发表于 04-25 09:12 350次阅读
    无人机遭遇“神秘<b class='flag-5'>杀手</b>”:揭秘反无人机技术的崛起

    人工智能热潮来袭,硅光子技术迎来杀手应用?

    过去十年来,通用云和互联网应用(如视频流媒体、社交网络、互联网搜索引擎和电子商务平台等)推动了数据中心流量的指数增长。
    的头像 发表于 04-01 17:26 662次阅读
    人工智能热潮来袭,硅光子技术迎来<b class='flag-5'>杀手</b><b class='flag-5'>级</b>应用?

    功率因数校正电路的适用性分析

    电子发烧友网站提供《单功率因数校正电路的适用性分析.doc》资料免费下载
    发表于 03-18 14:41 0次下载

    恐怖题材黑马大作,艾尔莎B760M-E D5和你玩转《心灵杀手2》

      说起恐怖题材的游戏,相信不少朋友都会第一时间想到《生化危机》、《寂静岭》、《死亡空间》等经典系列与作品。而在最近这几年,恐怖题材游戏也有不少黑马出现,比如最近推出的《心灵杀手2》就是2010年
    的头像 发表于 12-19 09:39 243次阅读

    英诺达发布RTL功耗分析工具助推IC高能效设计

    英诺达发布了自主研发的EnFortius®凝锋®RTL功耗分析工具,可以在IC设计流程早期对电路设计进行优化。
    的头像 发表于 11-01 10:28 473次阅读

    英诺达发布RTL功耗分析工具,助推IC高能效设计

    (摘要:英诺达发布了自主研发的EnFortius®凝锋®RTL功耗分析工具,可以在IC设计流程早期对电路设计进行优化。) (2023年11月1日,四川成都)英诺达(成都)电子科技有限公司发布了
    发表于 11-01 09:51 215次阅读

    扇出型晶圆封装技术的优势分析

    扇出型晶圆封装技术的优势在于能够利用高密度布线制造工艺,形成功率损耗更低、功能性更强的芯片封装结构,让系统封装(System in a Package, SiP)和3D芯片封装更愿意采用扇出型晶圆封装工艺。
    发表于 10-25 15:16 525次阅读
    扇出型晶圆<b class='flag-5'>级</b>封装技术的优势<b class='flag-5'>分析</b>

    开关电源中的功率拓扑、分析与设计

    电子发烧友网站提供《开关电源中的功率拓扑、分析与设计.pdf》资料免费下载
    发表于 10-20 10:39 2次下载
    开关电源中的功率<b class='flag-5'>级</b>拓扑、<b class='flag-5'>分析</b>与设计

    放大电路失真分析

    放大电路是指由两个放大器组成的电路,通常用于提高放大电路的增益和性能。在实际应用中,两放大电路可能会出现失真现象,影响信号的质量和稳定性。本文将对两放大电路失真进行分析
    的头像 发表于 10-17 18:22 2349次阅读

    CREE功放管漏偏置电路对称设计分析

    CGH40045F-TB漏偏置电路采用对称设计,主要分析原因在于降低偏置网络阻抗,提高视频带宽VBW,从而减小功放管的电记忆效应。
    的头像 发表于 10-10 10:40 738次阅读
    CREE功放管漏<b class='flag-5'>级</b>偏置电路对称设计<b class='flag-5'>分析</b>

    智能汽车的杀手应用是什么?

    Tesla FSD的导航信息与感知同在Local坐标系下,但是并不精确,也没有严格绑定车道 脱离高精地图,意味着车辆要捆绑“噪声”众多的感知实时地图和导航路径,而之后的驾驶决策就要在这样不确定的环境中做出。
    发表于 08-31 10:01 283次阅读
    智能汽车的<b class='flag-5'>杀手</b><b class='flag-5'>级</b>应用是什么?

    分析管截止工作曲线

    学习电子知识
    发布于 :2023年07月18日 19:38:15