Re: and nicer too - Re: [PATCH] epoll more scalable than poll

Dan Kegel
2002-11-01T18:19:03Z

Davide Libenzi wrote:
> On Fri, 1 Nov 2002, Dan Kegel wrote:
>
>>Davide Libenzi wrote:
>>
>>>>Do you avoid the cost of epoll_ctl() per new fd?
>>>
>>>Jamie, the cost of epoll_ctl(2) is minimal/zero compared with the average
>>>life of a connection.
>>
>>Depends on the workload. Where I work, the http client I'm writing
>>has to perform extremely well even on 1 byte files with HTTP 1.0.
>>Minimizing system calls is suprisingly important - even
>>a gettimeofday hurts.
>
> Dan, is it _one_ gettimeofday() or a gettimeofday() inside a loop ?
> gettimeofday() is of the order of few microseconds ... and If your clients
> works with anything alse than a loopback, few microseconds shouldn't weigh
> in much compared to connect/send/recv/close on a network connection. It is
> not much the fact that you transfer one byte, it's the whole TCP handshake
> cost that weighs in.

The scenario is: we're doing load testing of http products,
and for various reasons, we want line-rate traffic with
the smallest possible message size. i.e. we want the
maximum number of HTTP requests/responses per second.
Hence the 1 byte payloads. A single system call on the
slowish embedded processor I'm using has a suprisingly large
impact on the number of http gets per second I can do.
A 1% increase in speed is worth it for me!

So please do try to reduce the number of syscalls needed
to handle very short TCP sessions, if possible.

- Dan