I have a network testing application that is opening & closing sockets with
other machines at a high rate (multi-threaded, 1000 opens & closes a second
with ~20 machines.) There's a seperate thread per machine its connecting
to, and each thread opens a socket, transmits 8k, and closes.
The problem lies with an error of 'No buffer space availible' within the
first couple of seconds. I've tried the SO_SNDBUF& SO_RVCBUF, but that
doesn't make sense in my head anyways. Anyone seen problems like this under
similar conditions & maybe any remedys?
-mike
On Sat, 13 Oct 2001 11:08:48 -0400, Kingsbury, Michael wrote:
>I have a network testing application that is opening & closing sockets with
>other machines at a high rate (multi-threaded, 1000 opens & closes a second
>with ~20 machines.) There's a seperate thread per machine its connecting
>to, and each thread opens a socket, transmits 8k, and closes.
Are these TCP sockets? It can take around 2 minutes to close a TCP
connection. So 1,000 opens/closes a second could potentially mean 120,000
connections sitting around. Are you sure you aren't running out of local
ports or something else?
>The problem lies with an error of 'No buffer space availible' within the
>first couple of seconds. I've tried the SO_SNDBUF& SO_RVCBUF, but that
>doesn't make sense in my head anyways. Anyone seen problems like this under
>similar conditions & maybe any remedys?
Which system call returns the error? socket? bind? send? receive?
And why are you using so many threads? Are you under the misperception that
you need lots of thread to do lots of work? Perhaps your architecture is a
major part of the problem.
DS
Yes, these are TCP sockets. I do see some errors with regard to too many
open files, but not before the buffer error.
-mike
-----Original Message-----
From: David Schwartz [mailto:[email protected]]
Sent: Saturday, October 13, 2001 10:13 AM
To: [email protected]; '[email protected]'
Subject: Re: High Rate of Sockets -> No buffer space availible errors
On Sat, 13 Oct 2001 11:08:48 -0400, Kingsbury, Michael wrote:
>I have a network testing application that is opening & closing sockets with
>other machines at a high rate (multi-threaded, 1000 opens & closes a
second
>with ~20 machines.) There's a seperate thread per machine its connecting
>to, and each thread opens a socket, transmits 8k, and closes.
Are these TCP sockets? It can take around 2 minutes to close a TCP
connection. So 1,000 opens/closes a second could potentially mean 120,000
connections sitting around. Are you sure you aren't running out of local
ports or something else?
>The problem lies with an error of 'No buffer space availible' within the
>first couple of seconds. I've tried the SO_SNDBUF& SO_RVCBUF, but that
>doesn't make sense in my head anyways. Anyone seen problems like this
under
>similar conditions & maybe any remedys?
Which system call returns the error? socket? bind? send? receive?
And why are you using so many threads? Are you under the
misperception that
you need lots of thread to do lots of work? Perhaps your architecture is a
major part of the problem.
DS