Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 94 lines (71 sloc) 4.006 kb
93898d9 @chrismason-xx add some docs
chrismason-xx authored
1 <html>
2 <h3>Seekwatcher</h3>
3 <p>Seekwatcher generates graphs from blktrace runs to help visualize IO
4 patterns and performance. It can plot multiple blktrace runs together,
5 making it easy to compare the differences between different benchmark runs.</p>
6
0cfc3e7 @chrismason-xx Speedup: use a C struct for the blkparse parsing.
chrismason-xx authored
7 <h3>Installing:</h3>
8
9 <p>seekwatcher depends on python, cython and matplotlib. These are available
10 from most distros. Once you have installed them, use python setup.py install</p>
11
93898d9 @chrismason-xx add some docs
chrismason-xx authored
12 <h3>Examples:</h3>
13 <a href=http://oss.oracle.com/~mason/seekwatcher/ext3.compilebench.20.png>Ext3 creating 20 copies of the Linux kernel sources</a><p>
14
15 <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>
16
17 <h3>Installation</h3>
18 <p>Seekwatcher uses <a href=http://matplotlib.sourceforge.net>matplotlib</a>
19 to generate graphs, and most distros have a package for this. You'll also need
20 to install python and the numpy module. It is common for the matplotlib
21 packages to depend on numpy, so installing a distro's matplotlib should get you
22 what you need.<p>
23
191e097 @chrismason-xx Update docs
chrismason-xx authored
24 <p>seekwatcher --movie uses mencoder or png2theora to create movie files.</p>
a31c530 @chrismason-xx movies movies
chrismason-xx authored
25
93898d9 @chrismason-xx add some docs
chrismason-xx authored
26 <p>Once those are setup, just copy the seekwatcher script to a bin directory
27 and make it executable.</p>
28
29 <h3>Running Seekwatcher</h3>
a31c530 @chrismason-xx movies movies
chrismason-xx authored
30 <p>There are three basic ways to run seekwatcher. It can either generate
31 graphs from an existing blktrace run, start blktrace and run a program for
32 you, or make a series of pngs from a single trace. If seekwatcher starts and
33 stops blktrace, the trace runs are kept so they can be graphed again later.</p>
93898d9 @chrismason-xx add some docs
chrismason-xx authored
34
35 <p>Examples:</p>
36
37 <p>This will start blktrace on /dev/sda6, run find / > /dev/null, save the
38 blktrace output to find.trace and save the graph to find.png.
39 </p>
40 <pre>
41 seekwatcher -t find.trace -o find.png -p 'find / > /dev/null' -d /dev/sda6
42 </pre>
43
44 <p>To regenerate the graph from the saved trace file:<p>
45 <pre>seekwatcher -t find.trace -o find.png</pre>
46
47 <p>To compare multiple traces, use the -t flag multiple times. Providing a
48 corresponding -l flag for each trace will create labels on the graphs.<p>
49
50 <pre>
51 seekwatcher -t ext3.trace -t xfs.trace -l ext3 -l xfs -o ext3_vs_xfs.png
52 </pre>
53
191e097 @chrismason-xx Update docs
chrismason-xx authored
54 <p>Finally, you can also make an animation (either ogg or mpg) of the IO
55 generated by a given run. For these images, a disk is simulated as a grid of
56 x,y coordinates and every sector read/written is plotted with a black square.
a31c530 @chrismason-xx movies movies
chrismason-xx authored
57 Squares fade as the IO ages, blanking out after 10 frames.</p>
58
191e097 @chrismason-xx Update docs
chrismason-xx authored
59 <p>To create an animation from ext3.trace and store the resulting mpg
60 file in ext3-trace.mpg:
a31c530 @chrismason-xx movies movies
chrismason-xx authored
61
62 <pre>
191e097 @chrismason-xx Update docs
chrismason-xx authored
63 seekwatcher -t ext3.trace -o ext3-trace.mpg --movie
a31c530 @chrismason-xx movies movies
chrismason-xx authored
64 </pre>
65
93898d9 @chrismason-xx add some docs
chrismason-xx authored
66 <p>Seekwatcher creates 3 graphs by default: a plot of each sector read
67 or written, the number of seeks per second, and the throughput per second
68 during the run. Sometimes the plot of each sector can be difficult to read,
69 especially when comparing two runs with very different IO patterns.
70 <b>seekwatcher --no-io-graph</b> will disable this plot. Another option
71 is to use <b>seekwatcher --zoom start:end</b> to specify the range on the yaxis
72 you want included in the graph. The range is specified in MB, and using
73 a range of 0:0 will turn off seekwatcher's attempt at autoscaling the plot.</p>
74
75 <pre>
76 seekwatcher -t ext3.trace -z 10000:20000 -o ext3.png
77 seekwatcher -t ext3.trace -z 0:0 -o ext3-no-zoom.png
78 </pre>
79
a31c530 @chrismason-xx movies movies
chrismason-xx authored
80 <p>Seekwatcher uses a rolling average of the seek counts and throughput
81 values to make graphs smoother. You can control the number of seconds
82 rolled together (by default total trace time / 25) with
83 <b>seekwatcher --rolling-avg</b></p>
84
85
93898d9 @chrismason-xx add some docs
chrismason-xx authored
86 <h3>Controlling Output</h3>
87 <p>By default, seekwatcher saves the graph into a file called trace.png.
88 seekwatcher -o filename can be used to save it to a different file. The
89 extension specified controls what type of file is created, choices include
90 .png, .jpg, .eps, and .svg. The resolution used can be controlled with
91 --dpi num. By default, seekwatcher uses a 8x6 pagesize and a dpi of 120.</p>
92
93 </html>
Something went wrong with that request. Please try again.