[httperf] file descriptors

Adrian Chadd adrian at creative.net.au
Tue Jul 29 19:35:12 PDT 2008

On Wed, Jul 30, 2008, Mark Nottingham wrote:
> I've compared against the select-based httperf against a few known  
> servers, and the results seem equivalent.


> The interesting thing is that at lower rates, CPU usage is high (but  
> not >90%, as with select), but as they get higher, it dips pretty  
> substantially (much < 50%) and then slowly ramps up again. This is  
> useful, because you can tell when CPU on the client may become an  
> issue...

Could you get oprofile going and generate some traces?

30 second cheat-sheet:

opcontrol -p library -c 4 --no-vmlinux --start (include library profiling points,
  4 stack deep callgraph, don't profile kernel)
opreport -l /path/to/httperf/binary/that/is/running/httperf (flat)
opreport -lc /path/to/httperf/binary/that/is/running/httperf (callgraph)
opcontrol --reset (clear statistics)

That'll provide an idea of where the CPU is going in userland.

Once thats done, we can repeat the process with a vmlinux file and include
kernel profiling to see if we're doing something inefficiently.


> I think we should get this out there ASAP. The only thing that needs  
> to happen now is that configure should complain if it can't find  
> libevent, I think, and the docs need to be updatd WRT CPU usage.

I hate writing configure stuff; I never get it right. Could someone with
a little configure clue copy/paste the libevent discovery/configuration
stuff in please?

> The biggest perf limit I've got now is that I can generate about 550  
> *connections* a second; past that gets me a connection failed with  
> unexpected error 99, which is ENOSTR (not a stream). This is Red Hat  
> Linux. Any thoughts here? I see this with both select and libevent, so  
> it's not the new code. It always happens around the same rate; it's  
> not dependent upon how long the test has run, or the timeout  
> (suggesting that it's not cumulative resource exhaustion a la  
> ephemeral ports).

Cannot assign requested address (in another email); check your MSL times
and ephermeral port ranges.


- Xenion - https://www.xenion.com.au/ - VPS Hosting - Commercial Squid Support -

More information about the httperf mailing list