====== blktrace ======
---- dataentry analysisTool ----
name : blktrace
features_ttags : monitoring
layers_ttags : operating system, block device
version : 2.0.0 (2007-09-10)
license_ttag : GPL
----
blktrace is used to analyze I/O-access, it provides more a more detailed look at I/O-usage than other tools like iotop and iostat.
===== Usage =====
Analyzing I/O patterns with blktrace is done in two steps. First use ''blktrace'' to log operations, then use ''blkparse'' to show a detailed report on the recorded data.
Record I/O-events on the blockdevice ''/dev/sda'' for five seconds:
blktrace -w 5 -d /dev/sda
Print contents of the logfile to stdout (use -s switch to show per-program statistics at the end):
blkparse -i sda.blktrace.0 -s
Another option is to pass data into ''blkparse'' straigt away to enable live viewing:
blktrace -d /dev/sda -o - | blkparse -i -
===== Output =====
After recording the data blktrace shows a small summary of the recorded events:
=== sda ===
CPU 0: 3 events, 1 KiB data
CPU 1: 145 events, 7 KiB data
CPU 2: 6 events, 1 KiB data
CPU 3: 3 events, 1 KiB data
CPU 4: 295 events, 14 KiB data
CPU 5: 0 events, 0 KiB data
CPU 6: 0 events, 0 KiB data
CPU 7: 10 events, 1 KiB data
Total: 462 events (dropped 0), 22 KiB data
Since blkparse shows a huge amount of information we chose to only show small excerpts below.
Each event gets a single line in the first section of the log.
By default the following elements are shown in order:
|major and minor| major,minor device numbers (as shown in lsblk)|
|cpu|cpu-core|
|sequence| sequencenumber is|
|pid| unix process id|
|action| one of is described in detail in the documentation|
|rwbs|'r' for read, 'w' for write, 'd' for discard (for more details see the documentation)|
|starting block + number of blocks|Block the operation is starting at and the number of blocks affected respectively|
8,0 1 2 0.000001084 5069 Q W 240054272 + 2048 [dd]
8,0 1 8 0.000058101 5069 Q W 240056320 + 2048 [dd]
8,0 1 13 0.000110909 5069 Q W 240058368 + 2048 [dd]
8,0 1 14 0.000113330 5069 G W 240058368 + 2048 [dd]
8,0 1 16 0.000162283 5069 Q W 240060416 + 2048 [dd]
8,0 1 17 0.000164598 5069 G W 240060416 + 2048 [dd]
8,0 1 28 0.000243672 5069 I W 240058368 + 2048 [dd]
8,0 1 29 0.000243966 5069 I W 240060416 + 2048 [dd]
8,0 1 36 0.000255103 5069 D W 240058368 + 2048 [dd]
8,0 1 37 0.000259523 5069 D W 240060416 + 2048 [dd]
When the ''-s'' flag is set additional, per-process statistics are also displayed.
dd (5069)
Reads Queued: 0, 0KiB Writes Queued: 8, 5,696KiB
Read Dispatches: 0, 0KiB Write Dispatches: 8, 4,884KiB
Reads Requeued: 0 Writes Requeued: 0
Reads Completed: 0, 0KiB Writes Completed: 0, 0KiB
Read Merges: 0, 0KiB Write Merges: 0, 0KiB
IO unplugs: 1 Timer unplugs: 0
Allocation wait: 0 Allocation wait: 0
Dispatch wait: 0 Dispatch wait: 0
Completion wait: 0 Completion wait: 0
A summary is shown at the very end of blkparse's output.
Total (sda):
Reads Queued: 0, 0KiB Writes Queued: 41, 10,904KiB
Read Dispatches: 0, 0KiB Write Dispatches: 20, 10,092KiB
Reads Requeued: 0 Writes Requeued: 0
Reads Completed: 0, 0KiB Writes Completed: 21, 10,092KiB
Read Merges: 0, 0KiB Write Merges: 21, 84KiB
IO unplugs: 12 Timer unplugs: 0
Throughput (R/W): 0KiB/s / 3,285KiB/s
Events (sda): 352 entries
Skips: 0 forward (0 - 0.0%)
===== Similar tools =====
---- datarelated ----
cols : features, layers
max : 5
sort : ^name
----