Statistics
| Branch: | Revision:

root / synthbench / bonnie++ / .svn / text-base / bonnie++.8.svn-base @ 0:839f52ef7657

History | View | Annotate | Download (6.9 kB)

1
.TH bonnie++ 8
2
.SH "NAME"
3
bonnie++ \- program to test hard drive performance.
4

    
5
.SH "SYNOPSIS"
6
.B bonnie++
7
.I [\-d dir] [\-s size(MiB)[:chunk\-size(b)]]
8
.I [\-n number\-to\-stat(*1024)[:max\-size[:min\-size][:num\-directories]]]
9
.I [\-m machine\-name] [\-r ram\-size\-in\-MiB] [\-x number\-of\-tests]
10
.I [\-u uid\-to\-use:gid\-to\-use] [\-g gid\-to\-use]
11
.I [\-q] [\-f] [\-b] [\-p processes | \-y]
12

    
13
.SH "DESCRIPTION"
14
This manual page documents briefly the
15
.BR bonnie++ ,
16
program.
17
.P
18
Bonnie++ is a program to test hard drives and file systems for performance or
19
the lack therof. There are a many different types of file system operations
20
which different applications use to different degrees. Bonnie++ tests some of
21
them and for each test gives a result of the amount of work done per second
22
and the percentage of CPU time this took. For performance results higher
23
numbers are better, for CPU usage lower are better (NB a configuration scoring
24
a performance result of 2000 and a CPU result of 90% is better in terms of CPU
25
use than a configuration delivering performance of 1000 and CPU usage of 60%).
26
.P
27
There are two sections to the program's operations. The first is to test the
28
IO throughput in a fashion that is designed to simulate some types of database
29
applications. The second is to test creation, reading, and deleting many small
30
files in a fashion similar to the usage patterns of programs such as Squid or
31
INN.
32
.P
33
All the details of the tests performed by Bonnie++ are contained in the file
34
.BR /usr/share/doc/bonnie++/readme.html
35

    
36
.SH "OPTIONS"
37
For Bonnie++ every option is of the form of a hyphen followed by a letter and
38
then the next parameter contains the value.
39
.TP
40
.B \-d
41
the directory to use for the tests.
42
.TP
43
.B \-s
44
the size of the file(s) for IO performance measures in megabytes. If the size
45
is greater than 1G then multiple files will be used to store the data, and
46
each file will be up to 1G in size.  This parameter may include the chunk size
47
seperated from the size by a colon.  The chunk\-size is measured in bytes and
48
must be a power of two from 256 to 1048576, the default is 8192.  NB You can
49
specify the size in giga\-bytes or the chunk\-size in kilo\-bytes if you add
50
\f3g\f1 or \f3k\f1 to the end of the number respectively.
51

    
52
If the specified size is 0 then this test will be skipped.
53
.TP
54
.B \-n
55
the number of files for the file creation test. This is measured in multiples
56
of 1024 files. This is because no\-one will want to test less than 1024 files,
57
and we need the extra space on braille displays.
58

    
59
If the specified number is 0 then this test will be skipped.
60

    
61
The default for this test is to test with 0 byte files. To use files of other
62
sizes you can specify
63
.B number:max:min:num\-directories
64
where
65
.B max
66
is the maximum size and
67
.B min
68
is the minimum size (both default to 0 if not specified). If minimum and
69
maximum sizes are specified then every file will have a random size from the
70
range
71
.B min..max
72
inclusive.  If you specify a number of directories then the files will be
73
evenly distributed amoung that many sub\-directories.
74

    
75
If
76
.B max
77
is
78
.B \-1
79
then hard links will be created instead of files.
80
If
81
.B max
82
is
83
.B \-2
84
then soft links will be created instead of files.
85

    
86

    
87
.TP
88
.B \-m
89
name of the machine \- for display purposes only.
90

    
91
.TP
92
.B \-r
93
RAM size in megabytes. If you specify this the other parameters will be
94
checked to ensure they make sense for a machine of that much RAM. You should
95
not need to do this in general use as it should be able to discover the RAM
96
size. NB If you specify a size of 0 then all checks will be disabled...
97

    
98
.TP
99
.B \-x
100
number of test runs. This is useful if you want to perform more than one test.
101
It will dump output continuously in CSV format until either the number of
102
tests have been completed, or it is killed.
103

    
104
.TP
105
.B \-u
106
user\-id to use.  When running as root specify the UID to use for the tests.  It
107
is not recommended to use root (since the occasion when a Bonnie++ bug wiped
108
out someone's system), so if you really want to run as root then use
109
.B \-u root.
110
Also if you want to specify the group to run as then use the
111
.B user:group
112
format.  If you specify a user by name but no group then the primary group of
113
that user will be chosen.  If you specify a user by number and no group then
114
the group will be
115
.B nogroup.
116

    
117
.TP
118
.B \-g
119
group\-id to use.  Same as using
120
.B :group
121
for the
122
.B \-u
123
parameter, just a different way to specify it for compatibility with other
124
programs.
125

    
126
.TP
127
.B \-q
128
quiet mode. If specified then some of the extra informational messages will be
129
suppressed.
130

    
131
.TP
132
.B \-f
133
fast mode, skips per\-char IO tests.
134

    
135
.TP
136
.B \-b
137
no write buffering.  fsync() after every write.
138

    
139
.TP
140
.B \-p
141
number of processes to serve semaphores for.  This is used to create the
142
semaphores for synchronising multiple Bonnie++ processes.  All the processes
143
which are told to use the semaphore with
144
.B \-y
145
will start each test at the same time.  Use the value \-1 to delete the
146
semaphore.
147

    
148
.TP
149
.B \-y
150
wait for semaphore before each test.
151

    
152
.P
153

    
154
.SH "MULTIPLE PROCESSES"
155
Run the following commands to run three copies of Bonnie++ simultaneously:
156
.P
157
bonnie++ -p3
158
.P
159
bonnie++ -y > out1 &
160
.P
161
bonnie++ -y > out2 &
162
.P
163
bonnie++ -y > out3 &
164

    
165
.SH "OUTPUT"
166
The primary output is plain\-text in 80 columns which is designed to fit well
167
when pasted into email and which will work well with Braille displays.
168
.P
169
The second type of output is CSV (Comma Seperated Values). This can easily be
170
imported into any spread\-sheet or database program. Also I have included
171
the programs
172
.B bon_csv2html
173
and
174
.B bon_csv2txt
175
to convert CSV data to HTML and plain\-ascii respectively.
176
.P
177
For every test two numbers are reported, the amount of work done (higher
178
numbers are better) and the percentage of CPU time taken to perform the work
179
(lower numbers are better). If a test completes in less than 500ms then
180
the output will be displayed as "++++". This is because such a test result
181
can't be calculated accurately due to rounding errors and I would rather
182
display no result than a wrong result.
183

    
184
.SH "AUTHOR"
185
This program, its manual page, and the Debian package were written by
186
Russell Coker <russell@coker.com.au>, parts of the program are based on the
187
work of Tim Bray <tbray@textuality.com>.
188
.P
189
The documentation, the Perl scripts, and all the code for testing the creation
190
of thousands of files was written by Russell Coker, but the entire package is
191
under joint copyright with Tim Bray.
192

    
193
.SH "SIGNALS"
194
Handles SIGINT and does a cleanup (which may take some time), a second SIGINT
195
or a SIGQUIT will cause it to immediately die.
196
.P
197
SIGXCPU and SIGXFSZ act like SIGINT.
198
.P
199
Ignores SIGHUP.
200

    
201

    
202
.SH "BUGS"
203
The random file sizes will add up to different values for different test runs.
204
I plan to add some code that checks the sum and ensures that the sum of the
205
values will be the same on seperate runs.
206

    
207
.SH "AVAILABILITY"
208
The source is available from http://www.coker.com.au/bonnie++ .
209
.P
210
See http://etbe.coker.com.au/category/benchmark for further information.
211

    
212
.SH "SEE ALSO"
213
.BR bon_csv2html (1),
214
.BR bon_csv2txt (1)