Nimesh wrote to request a change in dkftpbench to
support multiple IP addresses on the client, to
increase the number of (local port, local ip adr) tuples
available. His goal is to simulate > 100000 ftp clients.
dkftpbench is currently based on poll(), which would limit
you to something like 20000 clients (as it gets very slow
above that).
Last year, I did write a Poller class to make it easy to
use more efficient replacements for poll(), but dkftpbench
doesn't use it yet.
Also, as of dkftpbench-0.23, Poller doesn't support Linux's
realtime signal approach to readiness notification
(which is included in e.g. Red Hat 7.1 and later).
So there are three things that have to happen to fulfill Nimesh's
request:
1. Write Poller_sigio.{cc,h} to support Linux's realtime signal
readiness notification.
2. Rewrite dkftpbench to use Poller instead of poll().
3. Add the 'multiple local ip addresses' feature to dkftpbench.
I just finished a first try at Poller_sigio, so #1 is more or less done
(though not well tested). It's uploaded as
http://www.kegel.com/dkftpbench/dkftpbench-0.24.tar.gz
if anyone wants to vet it.
Next step is to rewrite dkftpbench to use Poller. I've been
wanting to do that for a long time, but didn't have the
energy or an excuse to. I have both now (assuming sufficient coffee :-)
and will give it a shot.
- Dan
--
"I have seen the future, and it licks itself clean." -- Bucky Katt