btrace

btrace可以提供一個快速的方式來追蹤區塊裝置(block device),而btrace其實是一個shell scirpt,其實後來也是用『blktrace』和『blkparse』的結合,並且在將輸出給格式化。

SYNOPSIS

btrace [-s] [-t] [-w N] [-n N] [-b N] [-r ] [-a ...] ...

OPTIONS

-s

顯示程式所儲存的資料。

-t

顯示每個IO的time deltas。

-w

設定這個程式要跑幾秒。

-n N

指定要使用的buffers數量。

-b N

指定要拿取的事件buffer size。

-r

指定debugfs掛載點。

-a ...

為目前的filter增加mask。

指定要追蹤的裝置。

Default output

對於『blkparse』的預設輸出,格式如下:

"%D %2c %8s %5T.%9t %5p %2a %3d"

講解如下:

  • %D
    顯示這個event的device major/minor number,格式是『%3d,%-3d』。

  • %2c
    CPU的ID (2個字元欄寬)。

  • %8s
    序號。

  • %5T.%9t 這個欄位都是time stamp。

  • %5p
    5個欄寬的Process ID。

  • %2a
    2個欄寬的動作代碼。

  • %3d
    3個欄寬的RWBS資料。

所以舉個例子來看:

8,0    3        1     0.000000000   697  G   W 223490 + 8 [kjournald]

代表的就是: 這個event的major/minor number是『8,0』,CPU代號是『3』,序號是『1』,time-stamp為『0.000000000』,Process-ID為『697』,動作代碼為『G』,代表為 Get Request,RWBS為『W』代表Write,起始的block為『223490』,寫進了『4096(512*8)』長度的資料,寫入的process是『kjournald』。

results matching ""

    No results matching ""