iogrind

iogrind is a prototype I/O profiling tool, under development. It aims to give a fairly accurate picture of all the I/O your application would perform on a cold start: this can help to accelerate your application's cold start performance. It also has a nice file-system view. For all development related questions, contact the iogrind mailing list at iogrind-dev@lists.go-oo.org.

iogrind works in 3 parts:

Known issues

To avoid people getting too excited about using iogrind for prime time usage, here are a few of it's shocking deficiencies:

On the other hand, some of these are not that difficult to fix, patches much appreciated.

Tracing applications

This currently requires some custom hooks to valgrind; get the modified valgrind from:

git-clone http://www.gnome.org/~michael/git/valgrind.git

then use:

valgrind --tool=iogrind --log-file-exactly=/tmp/your-app.prf your-application

Dumping filesystems

Unless you just wish to play with a file-system view, it is necessary to use an ext3 file-system. It is (usually) not necessary to unmount the partition before dumping the details. Do:

ext2dump /dev/sda1 > sda1.xml

If you wish to dump some sub-path of a filing-system, just to examine a single directory, simply append the paths you are interested in to ext2dump.

Visualisation

To visualise run iogrind at the console:

iogrind --fsmodel=sda1.xml /tmp/your-app.prf

iogrind has various visualisation modes:

Stack View

It is possible to draw a histogram - area is simulated time, with stack frames in the left hand tree view. iog-stack.png

Address View

It is possible to see compressed address space (vertical) vs. simulated time: each black dot is the 1st touch of that page (expanded to 1x1 pixel) iog-address.png

File-system View

This shows the file-system trace, and can be used as a standalone tool: 'fsview' iog-fsview.png

Scribble View

This shows the I/O pattern by connecting each I/O event to the next with red-lines, this creates a string of events, that (ideally) should be a single horizontal line, however due to scattering of the data, this often yields a scribble effect. iog-scribble.png

Getting the code

The latest released source archive should be at ftp://ftp.gnome.org/pub/gnome/sources/iogrind/ And for the latest code use:

git-clone git://gitorious.org/iogrind/mainline.git

Apps/iogrind (last edited 2013-12-03 15:03:49 by WilliamJonMcCann)