Git Product home page Git Product logo

seekwatcher's Introduction

<html>
<h3>Seekwatcher</h3>
<p>Seekwatcher generates graphs from blktrace runs to help visualize IO
patterns and performance.  It can plot multiple blktrace runs together,
making it easy to compare the differences between different benchmark runs.</p>

<h3>Installing:</h3>

<p>seekwatcher depends on python, cython and matplotlib.  These are available
from most distros.  Once you have installed them, use python setup.py install</p>

<h3>Examples:</h3>
<a href=http://oss.oracle.com/~mason/seekwatcher/ext3.compilebench.20.png>Ext3 creating 20 copies of the Linux kernel sources</a><p>

<a href=http://oss.oracle.com/~mason/seekwatcher/ext3_vs_xfs.png>Ext3 vs XFS creating 20 copies of the Linux kernel sources</a><p>

<h3>Installation</h3>
<p>Seekwatcher uses <a href=http://matplotlib.sourceforge.net>matplotlib</a>
to generate graphs, and most distros have a package for this.  You'll also need
to install python and the numpy module.  It is common for the matplotlib
packages to depend on numpy, so installing a distro's matplotlib should get you
what you need.<p>

<p>seekwatcher --movie uses mencoder or png2theora to create movie files.</p>

<p>Once those are setup, just copy the seekwatcher script to a bin directory
and make it executable.</p>

<h3>Running Seekwatcher</h3>
<p>There are three basic ways to run seekwatcher.  It can either generate
graphs from an existing blktrace run, start blktrace and run a program for
you, or make a series of pngs from a single trace.  If seekwatcher starts and
stops blktrace, the trace runs are kept so they can be graphed again later.</p>

<p>Examples:</p>

<p>This will start blktrace on /dev/sda6, run find / > /dev/null, save the
blktrace output to find.trace and save the graph to find.png.
</p>
<pre>
seekwatcher -t find.trace -o find.png -p 'find / > /dev/null' -d /dev/sda6
</pre>

<p>To regenerate the graph from the saved trace file:<p>
<pre>seekwatcher -t find.trace -o find.png</pre>

<p>To compare multiple traces, use the -t flag multiple times.  Providing a
corresponding -l flag for each trace will create labels on the graphs.<p>

<pre>
seekwatcher -t ext3.trace -t xfs.trace -l ext3 -l xfs -o ext3_vs_xfs.png
</pre>

<p>Finally, you can also make an animation (either ogg or mpg) of the IO
generated by a given run.  For these images, a disk is simulated as a grid of
x,y coordinates and every sector read/written is plotted with a black square.
Squares fade as the IO ages, blanking out after 10 frames.</p>

<p>To create an animation from ext3.trace and store the resulting mpg
file in ext3-trace.mpg:

<pre>
seekwatcher -t ext3.trace -o ext3-trace.mpg --movie
</pre>

<p>Seekwatcher creates 3 graphs by default: a plot of each sector read
or written, the number of seeks per second, and the throughput per second
during the run.  Sometimes the plot of each sector can be difficult to read,
especially when comparing two runs with very different IO patterns. 
<b>seekwatcher --no-io-graph</b> will disable this plot.  Another option
is to use <b>seekwatcher --zoom start:end</b> to specify the range on the yaxis
you want included in the graph.  The range is specified in MB, and using
a range of 0:0 will turn off seekwatcher's attempt at autoscaling the plot.</p>

<pre>
seekwatcher -t ext3.trace -z 10000:20000 -o ext3.png
seekwatcher -t ext3.trace -z 0:0 -o ext3-no-zoom.png
</pre>

<p>Seekwatcher uses a rolling average of the seek counts and throughput
values to make graphs smoother.  You can control the number of seconds
rolled together (by default total trace time / 25) with
<b>seekwatcher --rolling-avg</b></p>


<h3>Controlling Output</h3>
<p>By default, seekwatcher saves the graph into a file called trace.png.
seekwatcher -o filename can be used to save it to a different file.  The
extension specified controls what type of file is created, choices include
.png, .jpg, .eps, and .svg.  The resolution used can be controlled with
--dpi num.  By default, seekwatcher uses a 8x6 pagesize and a dpi of 120.</p>

</html>

seekwatcher's People

Contributors

chrismason-xx avatar jankara avatar jeffmoyer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.