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』。