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) |