[httperf] httperf: connection failed with unexpected error 99

Mark Nottingham mnot at yahoo-inc.com
Wed Aug 30 11:42:33 PDT 2006


So, what exactly does --hog do, then? Is it system-dependent?

>        --hog  This option requests to use up as many TCP ports as
>               necessary.   Without  this option, httperf is typi-
>               cally limited to  using  ephemeral  ports  (in  the
>               range  from 1024 to 5000).  This limited port range
>               can quickly become a bottleneck so it is  generally
>               a  good  idea  to  specify  this option for serious
>               testing.  Also, this option must be specified  when
>               measuring  NT  servers since it avoids a TCP incom-
>               patibility between NT and UNIX machines.


On 2006/08/30, at 10:12 AM, Rick Jones wrote:

> Martin Arlitt wrote:
>> hi Mark
>> on my system it is
>> #define EADDRNOTAVAIL   99      /* Cannot assign requested address */
>
> Grep/find on /usr/include is a wonderful thing isn't it :)
>
> Which could mean an attempt to bind to an IP not assigned to the  
> system or...
>
> an attempt to reuse a "four-tuple" of local/remote IP, local/remote  
> port while that four-tuple was still in say TIME_WAIT.  If we have  
> a single client IP, speaking to a single server IP and the server  
> is at a single well-known port (eg 80) then this will happen when  
> the connection "churn" rate is greater than the size of the local  
> client port number space divided by the length of TIME_WAIT:
>
>  sizeof(clientportpsace)/lengthof(TIME_WAIT)
>
> If one's system is using the "RFC compliant" anonymous port number  
> space, that would be:
>
>   (65535-49152)/lengthof(TIME_WAIT)
>
> And given a common lengthof(TIME_WAIT) of 60 seconds yields:
>
>   16383/60  or ~273 connections per second.
>
> It is _NOT_ a good idea to "fix" this by shortening TIME_WAIT, even  
> for a benchmark, because that takes one away from  
> "reality" (however painful).  The proper fix is to first increase  
> the sizeof(clientportspace) by having the application explicitly  
> bind to a larger range of port numbers.  The SPECweb benchmarks  
> tend to use 5000 to 65535 so that gives us:
>
>   (65535-5000)/60 or ~1000 connections per second
>
> before there would be any attempts to reuse a connection name that  
> is still in TIME_WAIT.
>
> If you need more connections per second than that, the proper thing  
> to do is start adding IP addresses.
>
> rick jones
>
>> (from /usr/include/asm/errno.h)
>> Martin
>> On Tue, 29 Aug 2006, Mark Pors wrote:
>>> Hi,
>>>
>>> I got this error, but can't find what it means. Any ideas?
>>>
>>> Thanks,
>>> Mark
>>>
>>> _______________________________________________
>>> httperf mailing list
>>> httperf at linux.hpl.hp.com
>>> http://www.hpl.hp.com/hosted/linux/mail-archives/httperf/
>>>
>> _______________________________________________
>> httperf mailing list
>> httperf at linux.hpl.hp.com
>> http://www.hpl.hp.com/hosted/linux/mail-archives/httperf/
>
> _______________________________________________
> httperf mailing list
> httperf at linux.hpl.hp.com
> http://www.hpl.hp.com/hosted/linux/mail-archives/httperf/
>
>

--
Mark Nottingham
mnot at yahoo-inc.com





More information about the httperf mailing list