dkftpbench

dkftpbench is an FTP benchmark program inspired by SPECweb99.
Download

dkftpbench Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Dan Kegel
  • Publisher web site:
  • http://kegel.com

dkftpbench Tags


dkftpbench Description

dkftpbench is an FTP benchmark program inspired by SPECweb99. dkftpbench application is an FTP benchmark program inspired by SPECweb99. The result of the benchmark is a number-of-simultaneous-users rating; after running the benchmark properly, you have a good idea how many simultaneous dialup clients a server can support. The target bandwidth per client is set at 28.8 kilobits/second to model dialup users; this is important for servers on the real Internet, which often serve thousands of clients on only 10 MBits/sec of bandwidth.The final result of the benchmark is "the number of simultaneous 28.8 kilobits/second dialup users". To estimate this number, the benchmark starts up a new simulated user as soon as the last one has finished connecting. It stops increasing the number of users when one fails to connect, fails to maintain the desired bandwidth, or the limit specified by the -n option is reached. It runs the simulated users until the amount of time specified by the -t option has elapsed since the last simulated user birth or death; the final score is the number of users still alive at the end.Here are some key features of "dkftpbench":· Compiles and runs on Linux, FreeBSD, and Solaris (or did, last I tried) · fetches many files in parallel · waits for each connect to finish (and then a bit) before starting next one; slows down to < 1 connect/second when it reaches 75% of desired number of users. This spreads out user activity more evenly. · checks bandwidth continuously during each file fetch, stops adding users if any fetch too slow · throttles each fetch to use only the specified bandwidth · search for the max number of supported users · Displays verbose error message when any user fails · Aborts if it detects the client system running out of resources · Aborts if connecting to the server takes > 5 seconds · Aborts if it takes longer than 5 seconds to get first packet of a file · Uses new Poller class for scalability; you can specify which Poller to use on the commandline · Supports slow datarates (before, it only handles rates above 80kbits/sec on some systems) · Lets you set how picky it is about datarates (before, its 'must be faster than' threshold was fixed at 3/4 the target bandwidth) · Supports alternative readiness notification methods like O_ASYNC and O_ONESIGFD · Provided both as a standalone executable, and as a Corba object. (Thanks to http://corbaconf.kiev.ua/ for the Corba autoconf macros.· Switches to BINARY mode after login. (The client API lets you choose; edit robouser.cc to skip the START_TYPE state if you want to use ASCII.)Example:After unpacking the sources, configure them for your system with the command ./configureThis will generate Makefile from Makefile.in. To make sure the sources arrived intact and work properly on your system, type make checkIt will build all unit tests, and fail if any unit test fails. You must be connected to the Internet, as this will try to download a file from ftp.uu.net. To build the system tuning tool dklimits, type make dklimitsRun it on both the client and the server machine; make sure that the number of files it can open is about three times the desired number of users, and that the number of ports it can bind is higher than the desired number of users. You should not be running X Windows or any other programs on the client and server machines when running the benchmark. To build the benchmark, type makeThis produces the executable 'dkftpbench', the tuning program 'dklimits', and a bunch of unit tests (executables with names ending in _test) that you can ignore for now. Here's a simple use of dkftpbench: ./dkftpbench -n1 -hftp.uu.net -t15 -vThis tells bench to simulate one user fetching the default file from ftp.uu.net repeatedly, and stop after fifteen seconds. The program produces this output: Option values: -hftp.uu.net host name of ftp server -P21 port number of ftp server -n1 number of users -t15 length of run (in seconds) -b3600 desired bandwidth (in bytes per second) -uanonymous user name -probouser@ user password -fusenet/rec.juggling/juggling.FAQ.Z file to fetch -m1500 bytes per 'packet' -v1 verbosity1 usersUser0: fetching 22708 bytes took 6.530000 seconds, 3477 bytes per secondUser0: fetching 22708 bytes took 6.530000 seconds, 3477 bytes per secondTest over. 1 users left standing.


dkftpbench Related Software