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

    文章

    11817

    浏览量

    219543

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    射频连接器的“隐形杀手”:解析TNC接口阻抗失配导致的系统温升真相

    为什么功率没超标,TNC 接口却烫手?本文揭秘射频系统的“隐形杀手”——阻抗失配引发的异常温升。10 年射频专家带你直击实验室数据,拆解驻波反射如何通过介质损耗转化为热能。文章详细梳理了 VSWR
    的头像 发表于 04-23 14:31 38次阅读
    射频连接器的“隐形<b class='flag-5'>杀手</b>”:解析TNC接口阻抗失配导致的系统温升真相

    为何跨复位域问题是危险的“芯片杀手

    RDC)问题,一个可能导致即使仿真验证一切正常,却在芯片回片后出现功能性随机错误的“隐形杀手“。对于芯片开发团队而言,建立一套可靠的RDC签核流程是确保一次流片成功的关键。
    的头像 发表于 04-13 15:35 152次阅读
    为何跨复位域问题是危险的“芯片<b class='flag-5'>杀手</b>”

    高压测试两大“杀手”——干簧继电器如何破局?

    决定系统极限的“隐形杀手”。为什么你的测试总是不稳定?漏电流的困扰:在线束绝缘测试中,哪怕pA的泄漏路径,都会让绝缘电阻读数严重失真,导致“合格”与“不合格”的误
    的头像 发表于 04-07 14:59 1.2w次阅读
    高压测试两大“<b class='flag-5'>杀手</b>”——干簧继电器如何破局?

    抢占优先和子优先

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

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

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

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

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

    三星电容D与K精度适用场景?

    的通用场景,如消费电子、一般工业控制。以下是对两者的具体分析: D精度(±0.5%) 定义:D精度表示电容器的实际容量与标称容量之间的允许偏差范围为±0.5%,是精度等级中较高的一档。 适用场景:由于D
    的头像 发表于 10-28 16:14 770次阅读
    三星电容D<b class='flag-5'>级</b>与K<b class='flag-5'>级</b>精度适用场景?

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

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

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

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

    与千洁净间有什么区别? -蔚蓝新实验室为您解答

    与千洁净间在洁净度标准、气流组织、建设成本、应用场景及维护管理等方面存在显著差异,这些差异源于两者对洁净度的不同要求。以下从五个维度展开对比分析:1.洁净度标准:核心差异百洁净
    的头像 发表于 08-13 16:15 2973次阅读
    百<b class='flag-5'>级</b>与千<b class='flag-5'>级</b>洁净间有什么区别? -蔚蓝新实验室为您解答

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

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

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

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

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

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

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

    ESD技术文档:芯片ESD与系统ESD测试标准介绍和差异分析
    的头像 发表于 05-15 14:25 4935次阅读
    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 4120次阅读