[httperf] Httperf client timeout while making progress

Jesse Byler lists.httperf at web19.eml.cc
Sat Nov 25 16:36:29 PST 2006

Hi Chris,

The --hog option, as you discovered, causes httperf to bind() before
connect()ing, so that it can use the full range of source ports instead
of the normal high-numbered source ports the OS defaults to using.  This
allows a greater number of TCP sockets to be used.

The problem is that the number of open file descriptors is limited in
several places - hard and soft limits are imposed by the shell and can
be set with ulimit.  Also, httperf has a compiled-in limit that comes
from the libc include files.  And httperf needs a file descriptor for
each open socket.  See the threads here:


for a patch to httperf that fixes the problem.

Good luck!


The information contained in this electronic mail
and any attached document is the confidential and
proprietary business information of Forum Systems,
Inc. It is intended solely for the addressed
recipient listed above. It may not be distributed
in any manner without the express written consent
of Forum Systems, Inc.

----- Original message -----
From: "Chris Wilson" <chris at aidworld.org>
To: "Martin Arlitt" <arlitt at granite.hpl.hp.com>
Cc: "Httperf Mailing List" <httperf at napali.hpl.hp.com>
Date: Fri, 24 Nov 2006 22:43:57 +0300 (EAT)
Subject: Re: [httperf] Httperf client timeout while making progress

I think I found another issue, and I probably should start a new thread 
for this, but I hope you will forgive me. I'm sure this works sometimes, 
but right now for me, httperf --hog does not work. It gives an error
trying to connect() to the remote host, on FreeBSD 5.5:

root at utalii(httperf)$ httperf --hog --server www.cnn.com --num-conns 1
   --num-calls 1 --rate 0.2 --http-version=1.0 --timeout 30
httperf --hog --timeout=30 --client=0/1 --server=www.cnn.com --port=80
   --uri=/ --http-version=1.0 --rate=0.2 --send-buffer=4096
   --recv-buffer=16384 --num-conns=1 --num-calls=1
httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open 
files to FD_SETSIZE
httperf: connection failed with unexpected error 1
Maximum connect burst length: 0 [...]

I think the problem is with the bind(), but I'm not sure why. When I
use --hog, the bind() doesn't happen and httperf works fine.

Cheers, Chris.

More information about the httperf mailing list