Measure disk throughput for simulated netbench run
dbench [options]numclients
tbench [options]numclientsserver tbench_srv [options]
This manual page documents briefly the dbench and tbench benchmarks. This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page. However, it has fairly easy to read source code.
Netbench is a terrible benchmark, but it's an "industry standard" and it's what is used in the press to rate windows fileservers like Samba and WindowsNT.
Given the requirements of running netbench (60 and 150 Windows PCs all on switched fast ethernet and a really grunty server, and some way to nurse all those machines along so they will run a very fussy benchmark suite without crashing), these programs were written to open up netbench to the masses.
Both dbench and tbench read a load description file called client.txt that was derived from a network sniffer dump of a real netbench run. client.txt is about 4MB and describes the 90 thousand operations that a netbench client does in a typical netbench run. They parse client.txt and use it to produce the same load without having to buy a huge lab.
dbench produces only the filesystem load. It does all the same IO calls that the smbd server in Samba would produce when confronted with a netbench run. It does no networking calls.
tbench produces only the TCP and process load. It does the same socket calls that smbd would do under a netbench load. It does no filesystem calls. The idea behind tbench is to eliminate smbd from the netbench test, as though the smbd code could be made infinately fast.
The dbench program takes a number, which indicates the number of clients to run simultaneously. It can also take the following options:
-c client.txt
Use this as the full path name of the client.txt file (the default is /usr/share/dbench/client.txt).
-s
Use synchronous file IO on all file operations.
-t TIME
set the runtime of the benchmark in seconds (default 600)
-D DIR
set the base directory to run the filesystem operations in
-x
enable xattr support, simulating the xattr operations Samba4 would need to perform to run the load
-S
Use synchronous IO for all directory operations (unlink, rmdir, mkdir and rename).
The tbench program takes a number, which indicates the number of clients to run simultaneously, and a server name: tbench_srv should be invoked on that server before invoking tbench. tbench can also take the following options:
-T option[,...]
This sets the socket options for the connection to the server. The options are a comma-separated list of one or more of the following: SO_KEEPALIVE, SO_REUSEADDR, SO_BROADCAST, SO_NODELAY, SO_LOWDELAY, SO_THROUGHPUT, SO_SNDBUF=number, SO_RCVBUF=number, SO_SNDLOWAT=number, SO_RCVLOWAT=number, SO_SNDTIMEO=number,and SO_RCVTIMEO=number. See socket(7) for details about these options.
The tbench_srv can only take one option: -T option[,...] as documented above.
/usr/share/doc/dbench/README contains the original README by Andrew Tridgell which accompanies the dbench source.
This manual page was originally written by Paul Russell <[email protected]>, for the Debian GNU/Linux system (but may be used by others). Modified and updated by Mattias Nordstrom <[email protected]>.