1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
3 <refentry id="dbench.1">
6 <refentrytitle>dbench</refentrytitle>
7 <manvolnum>1</manvolnum>
12 <refname>dbench</refname>
13 <refpurpose>a benchmark tool</refpurpose>
18 <command>dbench [OPTIONS] <num-procs></command>
22 <command>dbench</command>
23 <arg choice="opt">-B --backend=<dbench backend></arg>
24 <arg choice="opt">-c --loadfile=<filename></arg>
25 <arg choice="opt">-D --directory=<string></arg>
26 <arg choice="opt">-F --fsync</arg>
27 <arg choice="opt">-R --target-rate=<double></arg>
28 <arg choice="opt">-s --sync</arg>
29 <arg choice="opt">-S --sync-dir</arg>
30 <arg choice="opt">-t --timelimit=<integer></arg>
31 <arg choice="opt">-T --tcp-options=<string></arg>
32 <arg choice="opt">--run-once</arg>
33 <arg choice="opt">--fake-io</arg>
34 <arg choice="opt">--server=<hostname></arg>
35 <arg choice="opt">--export=<string></arg>
36 <arg choice="opt">--protocol=<string></arg>
37 <arg choice="opt">--clients-per-process=<integer></arg>
38 <arg choice="opt">--stat-check</arg>
39 <arg choice="opt">--skip-cleanup</arg>
40 <arg choice="opt">--per-client-results</arg>
42 <arg choice="opt">-? --help</arg>
43 <arg choice="opt">--usage</arg>
50 <refsect1><title>DESCRIPTION</title>
52 dbench is a utility to benchmark a system based on client workload
58 <refsect1> <title>STANDARD OPTIONS</title>
60 <refsect2><title>-B --backend=<dbench backend></title>
62 The backend type specifies which kind of commandset and what kind of
63 tests that dbench will perform. The backend type specifies which
64 kind of loadfile that can be used.
68 There are currently three types of backends : "fileio", "sockio" and "nfs". The default is "fileio" which uses a CIFS style loadfile.
72 <refsect2><title>-c --loadfile=<filename></title>
74 This specifies the name of the loadfile to use. The loadfile describes
75 the sequence and timing of operations that dbench will issue.
79 <refsect2><title>-D --directory=<string></title>
81 This controls which directory that dbench will use as the root for when
82 running the loadfile. This defaults to "." which refers to the current
83 directory for the "fileio" and "sockio" backends and the root of the
84 export for the "nfs" backend.
88 <refsect2><title>-R --target-rate=<double></title>
90 By default dbench will try to replay the loadfile and keep the same
91 rate as the original application the loadfile was captured from.
92 Using this option it is possible to run the load file faster/slower
93 than in the original capture.
97 The argument is specified in MByte/second. dbench tries to match this
98 target rate by dynamically increasing/decreasing the delays beteen
99 the inidvidual opertaions in the loadfile. These calculations only
100 take the READ and WRITE operations of the loadfile into account
101 so this may not work reliable for loadfiles with very few READ/WRITE
106 By setting this limit to something very large, such as 999999.99 you can
107 effectively tell dbench to "run this loadfile as fast as possible".
112 <refsect2><title>-t --timelimit=<integer></title>
114 How long to run the test for.
118 <refsect2><title>--run-once</title>
120 Only run the loadfile once and stop when the end of the loadfile is
124 The default for dbench is to wrap the loadfile when the end is
125 reached and continue running the loadfile over and over until the
126 timelimit is reached.
130 <refsect2><title>--clients-per-process=<integer></title>
132 By default dbench will fork one child process for each client emulated.
133 Using this option dbench will run multiple emulated clients inside
138 This is useful for testing how performance differs between the case
139 of n processes with one thread of I/O each and one process with n threads
144 <refsect2><title>--skip-cleanup</title>
146 Do not cleanup and delete all temporary files in the clients work
147 directory when the test ends.
151 <refsect2><title>--per-client-results</title>
153 When the test is finished print a latency report for each inidvidual
154 client in addition to the aggregated report over all clients.
160 <refsect1> <title>FILEIO OPTIONS</title>
161 <refsect2><title>-F --fsync</title>
163 This option only apply to the "fileio" backend.
167 This will make dbench perform a fsync() to the file after each write
172 <refsect2><title>-s --sync-open</title>
174 This option only apply to the "fileio" backend.
178 This makes dbench override the loadfile and use O_SYNC for all
179 file open operations.
183 <refsect2><title>-S --sync-dir</title>
185 This option only apply to the "fileio" backend.
189 Call fsync() on the directory after each "unlink", "rmdir" or "rename"
190 operation. This emulates how the linux kernel nfs daemon syncs
191 directories after performing directory modifying operations.
195 <refsect2><title>--fake-io</title>
197 This option only apply to the "fileio" backend.
201 Do not do any file read/write operations at all.
205 <refsect2><title>--stat-check</title>
207 This option only apply to the "fileio" backend.
211 After each create/mkdir/rmdir/rename operation, immediately try to
212 stat() the object affected and verify that the return code from stat()
213 is correct. I.e. Verify that immediately after we have created an
214 object that stat() will succeed and that immediately after we have
215 deleted an object that stat() will fail.
221 <refsect1> <title>SOCKIO OPTIONS</title>
222 <refsect2><title>-T --tcp-options=<string></title>
224 This option only apply to the "sockio" backend.
231 <refsect1> <title>NFS OPTIONS</title>
232 <refsect2><title>--server=<hostname></title>
234 This option only apply to the "nfs" backend.
238 This option is mandatory when the "nfs" backend is used.
242 This specifies the host-name or ip-address of the server to test.
246 <refsect2><title>--export=<string></title>
248 This option only apply to the "nfs" backend.
252 This option is mandatory when the "nfs" backend is used.
256 This specifies the nfs-export on the server to do i/o to.
260 <refsect2><title>--protocol=<string></title>
262 This option only apply to the "nfs" backend.
266 This specifies whether "tcp" or "udp" is to be used. Default is "tcp".
272 <refsect1><title>COPYRIGHT/LICENSE</title>
274 Copyright (C) Andrew Tridgell 2008
275 Copyright (C) Ronnie Sahlberg 2008
277 This program is free software; you can redistribute it and/or modify
278 it under the terms of the GNU General Public License as published by
279 the Free Software Foundation; either version 3 of the License, or (at
280 your option) any later version.
282 This program is distributed in the hope that it will be useful, but
283 WITHOUT ANY WARRANTY; without even the implied warranty of
284 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
285 General Public License for more details.
287 You should have received a copy of the GNU General Public License
288 along with this program; if not, see http://www.gnu.org/licenses/.