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
    +关注

    关注

    88

    文章

    11628

    浏览量

    218006

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    抢占优先和子优先

    关于抢占优先和子优先: 1)具有高抢占式优先的中断可以在具有低抢占式优先的中断服务程序执行过程中被响应,即中断嵌套,或者说高抢占式优先
    发表于 12-03 07:11

    双组份灌封胶固化失败?一文揭示配比、搅拌、环境三大隐形杀手 | 铬锐特实业

    双组份灌封胶固化失败怎么办?本文深度揭秘配比失准、搅拌不均、温湿度三大隐形杀手,并附快速自检清单,90%固化问题一篇搞定! | 铬锐特实业
    的头像 发表于 12-02 00:42 39次阅读
    双组份灌封胶固化失败?一文揭示配比、搅拌、环境三大隐形<b class='flag-5'>杀手</b> | 铬锐特实业

    警惕!静电浪涌成汽车电子 “隐形杀手”,TVS&amp;ESD筑牢整车安全防线

    当你驾驶着搭载了先进电子系统的汽车穿梭于城市道路时,是否想过静电与浪涌正悄无声息地威胁着整车的安全与性能?作为汽车电子领域的“隐形杀手”,它们对车载显示、动力总成、电池管理系统等关键部件的危害,可能超出你的想象。
    的头像 发表于 11-19 18:24 103次阅读

    别让“隐形杀手”毁了你的设备性能

    1“隐形杀手”逐个抓No.1杀手一号:散热材料不给力散热材料作为散热系统的核心组成部分,其性能优劣直接决定了设备的散热效果。常见的散热材料有金属、导热硅脂、石墨烯等,它们各自有着独特的特性和导热
    的头像 发表于 09-19 09:34 489次阅读
    别让“隐形<b class='flag-5'>杀手</b>”毁了你的设备性能

    电机 “沉默杀手” 藏不住了!VC4060C 直击家电 / 电动车 / 工业设备隐患

    揭露家电、电动车与工业电机背后的“沉默杀手” ——马达检测仪VC4060C让电机问题无处遁形 你是否曾被这些问题困扰:家里的电器突然“罢工”,电动车的续航里程骤然减少,或者工厂设备频繁故障影响生产
    的头像 发表于 08-25 17:31 425次阅读
    电机 “沉默<b class='flag-5'>杀手</b>” 藏不住了!VC4060C 直击家电 / 电动车 / 工业设备隐患

    如何设置协议分析仪进行微秒测试?

    设置协议分析仪进行微秒测试需从硬件同步、采样率配置、触发条件优化、信号完整性保障、软件分析工具选择及环境控制六个维度综合配置,具体方法如下:1. 硬件同步与时间戳精度 使用精密时间协议(PTP
    发表于 07-28 17:28

    人工智能重塑电子产业链未来

    AI大模型下半场,应用端的想象力爆炸,有望真正改变一个时代的用户行为的“杀手应用”初现江湖。
    的头像 发表于 06-23 11:37 922次阅读

    蔡司培训|提升技能必看——AUKOM 一/二课程培训

    AUKOM 一课程通过系统的分析测量误差,即工件、环境、测量机、操作人员、测量策略,五个方面分析误差因子,保证策量结果的准确性。 AUKOM 二课程是在AUKOM 一
    发表于 06-03 14:26 1892次阅读
    蔡司培训|提升技能必看——AUKOM 一<b class='flag-5'>级</b>/二<b class='flag-5'>级</b>课程培训

    ESD技术文档:芯片ESD与系统ESD测试标准介绍和差异分析

    ESD技术文档:芯片ESD与系统ESD测试标准介绍和差异分析
    的头像 发表于 05-15 14:25 4031次阅读
    ESD技术文档:芯片<b class='flag-5'>级</b>ESD与系统<b class='flag-5'>级</b>ESD测试标准介绍和差异<b class='flag-5'>分析</b>

    电缆b阻燃和c阻燃差别

    电缆B阻燃和C阻燃在阻燃性能、测试条件、材料与工艺、应用场景及成本效益等方面存在显著差别,以下为具体分析: 阻燃性能: B阻燃:在持续燃烧条件下的耐受时间比C
    的头像 发表于 05-14 09:53 2733次阅读

    概伦电子芯片HBM静电防护分析平台ESDi介绍

    ESDi平台是一款先进的芯片ESD(静电防护)验证平台,为设计流程的各个阶段提供定制化解决方案。该平台包括原理图HBM(人体模型)检查工具ESDi-SC,芯片HBM检查工具ESDi,和适用于多线程仿真的芯片
    的头像 发表于 04-22 10:25 915次阅读
    概伦电子芯片<b class='flag-5'>级</b>HBM静电防护<b class='flag-5'>分析</b>平台ESDi介绍

    电机端盖冲压工艺分析进模设计

    纯分享帖,需要者可点击附件获取完整资料~~~*附件:电机端盖冲压工艺分析进模设计.pdf (免责声明:本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!)
    发表于 04-02 15:01

    电气火灾的“隐形杀手”:故障电弧,你了解多少?

    一、背景 随着电气化程度的不断提高,电气火灾事故频发,造成了严重的人员伤亡和财产损失。据统计,电气火灾已成为火灾事故的主要原因之一,而故障电弧则是引发电气火灾的“隐形杀手”。故障电弧是指由于电气线路
    的头像 发表于 03-19 16:45 1012次阅读
    电气火灾的“隐形<b class='flag-5'>杀手</b>”:故障电弧,你了解多少?

    警惕静电:电路板的隐形杀手​ ​

    在 PCBA 加工领域,静电犹如一个潜伏在暗处的隐形杀手,时刻威胁着电路板的安全与性能。稍有不慎,它就能给电路板带来难以估量的损害,造成巨大的经济损失。今天,就让我们深入了解一下静电给电路板带来
    的头像 发表于 03-18 13:09 1279次阅读
    警惕静电:电路板的隐形<b class='flag-5'>杀手</b>​  ​

    工业连接器的抗UV性能分析

    工业连接器的抗UV性能是评估其户外应用可靠性的一项重要指标。以下是对工业连接器抗UV性能的详细分析: 一、紫外线(UV)对连接器的影响 1. 表面氧化:长期暴露在UV光下,金属表面容易形成氧化层
    的头像 发表于 02-18 09:50 1394次阅读
    工业<b class='flag-5'>级</b>连接器的抗UV性能<b class='flag-5'>分析</b>