A word from our sponsors

Table of Contents

Block Layer I/O Tracing

Tools

Install blktrace on Debian based systems:

root@host:~# apt-get install blktrace

Ensure that the virtual filesystem Debug-FS is mounted:

root@host:~# mount | grep debugfs

Mount the Debug-FS if it's currently not available:

root@host:~# /etc/init.d/mountdebugfs start

or:

root@host:~# mount -t debugfs debugfs /sys/kernel/debug

Start the recording of the block I/O on a device until CTRL+Ctrl is pressed. In this example the block device /dev/sda:

root@host:~# blktrace /dev/sda
^C
=== sda ===
  CPU  0:                 8674 events,      407 KiB data
  CPU  1:                 9747 events,      457 KiB data
  CPU  2:                  631 events,       30 KiB data
  CPU  3:                 8977 events,      421 KiB data
  Total:                 28029 events (dropped 0),     1314 KiB data

This creates the output files sda.blktrace.<CPU-#> in the current working directory. The output files can be analysed with the command:

root@host:~# blkparse -i sda.blktrace.<CPU-#>

See man blkparse for a description of the output format.

Recording and analysis of the block I/O on a device can be pipelined:

root@host:~# blktrace /dev/sda -o - | blkparse -i -

or the shorthand command:

root@host:~# btrace /dev/sda

be used.

To record and replay the block I/O on a device the commands btrecord and btreplay can be used. This can be especially useful to compare different environments or settings with the exact same block I/O load.

The tool btt perfoms an analysis on the output files written by the blktrace command:

root@host:~# btt -i sda.blktrace.0

See man btt for the available options.

The tool blkiomon can be used to perfom an iostat-like analysis on the output generated by the blktrace command. For example to generate an 1 hour long trace of the device /dev/sda and output the statistics in a human-readable format in 10 second intervals:

root@host:~# blktrace /dev/sda -w 3600 -o - | blkiomon -I 10 -h -

See man blkiomon for the available options.

For visualization purposes there are the tools bno_plot and iowatcher available.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website. More information about cookies