zoukankan      html  css  js  c++  java
  • bcc-tools工具之hardirqs

    hardirqs从字面意思我们基本就可以知道是其作用肯定与硬中断相关

    还是老样子,先hardirqs --help查看下其支持哪些功能:

    usage: hardirqs [-h] [-T] [-N] [-C] [-d] [interval] [outputs]
    
    Summarize hard irq event time as histograms
    
    positional arguments:
      interval           output interval, in seconds   
      outputs            number of outputs
    
    optional arguments:
      -h, --help         show this help message and exit
      -T, --timestamp    include timestamp on output  显示时间戳
      -N, --nanoseconds  output in nanoseconds        用ns的形式显示
      -C, --count        show event counts instead of timing   不显示各中断执行时间,而是显示中断发生的次数
      -d, --dist         show distributions as histograms      对每一个硬中断各自采用矩形图方式显示出来
    

     从help来看,hardirqs功能支持过于单调,甚至没法支持单独跟踪某一个硬中断的功能,这块可能让人觉得很无语,但是这么做原因是为什么呢? 笔者认为主要有两个

    原因

    1. 想单独跟踪某个函数的话,采用funclatency足矣
    2. hardirqs相比采用perf跟踪中断情况更加轻量高效

    下面重点介绍下使用方法:

    ./hardirqs

    ./hardirqs
    Tracing hard irq event time... Hit Ctrl-C to end.
    ^C
    HARDIRQ                    TOTAL_usecs  注意显示的单位是us
    vmw_vmci                            31
    ehci_hcd:usb1                      532
    ens33                              743
    ata_piix                           831

     ./hardirqs -d    

    显示各硬中断执行矩形图

    Tracing hard irq event time... Hit Ctrl-C to end.
    ^C
    
    hardirq = 'ehci_hcd:usb1'
         usecs               : count     distribution
             0 -> 1          : 0        |                                        |
             2 -> 3          : 0        |                                        |
             4 -> 7          : 0        |                                        |
             8 -> 15         : 0        |                                        |
            16 -> 31         : 1        |********************                    |
            32 -> 63         : 2        |****************************************|
            64 -> 127        : 0        |                                        |
           128 -> 255        : 2        |****************************************|
           256 -> 511        : 1        |********************                    |
    
    hardirq = 'ata_piix'
         usecs               : count     distribution
             0 -> 1          : 0        |                                        |
             2 -> 3          : 0        |                                        |
             4 -> 7          : 0        |                                        |
             8 -> 15         : 1        |**                                      |
            16 -> 31         : 20       |****************************************|
            32 -> 63         : 20       |****************************************|
            64 -> 127        : 5        |**********                              |

    ./hardirqs 1 10 

    采用每隔一秒共显示十次的形式

    Tracing hard irq event time... Hit Ctrl-C to end.
    
    HARDIRQ TOTAL_usecs
    ens33 34
    ata_piix 66
    
    HARDIRQ TOTAL_usecs
    vmw_vmci 9
    ens33 45
    
    HARDIRQ TOTAL_usecs
    ens33 57

     ./hardirqs -NT 1

    每隔1s显示一次,单位为ns,并显示时间戳

    Tracing hard irq event time... Hit Ctrl-C to end.
    
    03:50:04
    HARDIRQ                    TOTAL_nsecs
    vmw_vmci                          9434
    ens33                            57355
    ata_piix                         67812
    
    03:50:05
    HARDIRQ                    TOTAL_nsecs
    ens33                            36448
    
    03:50:06
    HARDIRQ                    TOTAL_nsecs
    ens33                            48302
    ata_piix                        388860
    
    03:50:07
    HARDIRQ                    TOTAL_nsecs
    ens33                            38183
    ehci_hcd:usb1                   396930
  • 相关阅读:
    idea快捷键操作
    2018/2/17 SpringCloud的一个简单小介绍
    2018/2/16 解析Logback的AppenderBase源码,并举一反三的实现Logback扩展功能的思路,以及它的实际业务应用场景
    2018/2/15 ES Beats的学习笔记
    2018/2/14 x-pack的学习
    2018/2/14 自己实现ArrayList,LinkedList和Iterator,以及在此过程中对于面向对象,面向接口,还有抽象类的一些思考感悟
    2018/2/13 ElasticSearch学习笔记三 自动映射以及创建自动映射模版,ElasticSearch聚合查询
    2018/2/11 ELK技术栈之ElasticSearch学习笔记二
    2018/2/5 ELK技术栈之ElasticSearch学习笔记
    2018/1/28 RocketMq学习笔记
  • 原文地址:https://www.cnblogs.com/haoxing990/p/12129914.html
Copyright © 2011-2022 走看看