====== 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+C 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.'' in the current working directory. The output files can be analysed with the command: root@host:~# blkparse -i sda.blktrace. 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. ===== Links ===== [[https://www.linux-magazin.de/ausgaben/2019/03/best-practices-8/|Linux Magazine - Issue 03/2019 - Plattenzugriffe bis aufs letzte Bit nachvollziehen]]\\