On 2001-09-05 19:44:23 -0700, Dan Kegel wrote:
>
> However, to get up past 10000 or so connections will require using
> something faster than poll(). The easiest for me to support would be
> /dev/epoll, but that would require you to install a patch. I could
> whip together support for rtsignals, that would be very efficient,
> might take me more than a day, though.
>
> How many clients have you gotten up to so far, and how much RAM
> do you have on your client machine? I don't know if you can get
> to 500K on a single client machine, even with your multiple address
> trick, because of RAM limitations...
I'm not sure what this means. I assume we're talking 500K simultaneous
connections....
Since port addresses are 16-bits, there are only 65536 on a single box.
You can use a single port to connect to multiple other addresses if you
bind() before calling connect(), but the combination of
src-addr:src-port:dst-addr:dst-port must be unique, IIRC. This limits
the applicability of such a technique to a benchmarking program that
connects (usually) to port 21 on a small number of hosts.
I'd say you need at least 10 client machines (50K per host) for this.
If you don't have that kind of hardware lying around, you might be able
to use user mode Linux and run virtual Linux boxes for the clients.
--
Shane
Carpe Diem