bcc-toolsツールのhardirqs

9053 ワード

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機能のサポートは単調すぎて、ハードブレークを単独で追跡する機能さえサポートできないのは無言かもしれませんが、なぜでしょうか.筆者は主に2つあると思います
の原因となる
  • ある関数を単独で追跡したい場合はfunclatencyで
  • 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 
    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
    1 sごとに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