• 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
  • 相关阅读:
    【php】记录一次生产环境bug的调试
    【ubuntu】Ubuntu 修改 Apache2 运行用户/用户组及修改方法
    【ubuntu】修改php-fpm和nginx运行用户
    【win7】安装php7.3及扩展
    【apache】No input file specified
    Python3 解释器:交互式编程、脚本式编程介绍
    Python3 基本数据类型:字符串、列表、元组、集合、字典等
    Python3 环境搭建,Python 安装,各个平台的安装使用
    Python3 简介,python发展历史、特点以及应用
    详解Python3教程,第一个Python3.x程序
  • 原文地址:https://www.cnblogs.com/haoxing990/p/12129914.html
Copyright © 2020-2023  润新知