This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Idle timeout and maximum # of sockets for athttpd


> > I don't quite understand CYG_HTTPD_SOCKET_IDLE_TIMEOUT
> > in detail, but it is hardwired to 300 seconds which appears to be
> > rather long for the default maxim # sockets (16).
>
> The time of 5 minutes before an inactive socket is closed was
> chosen without much concern to the maximum number of
> sockets. Its intentions were mainly to close sockets that have
> been inactive for more than 5 minutes, regardless of the reason:
> In other words I felt that with persistent connections (and very
> few sockets available to begin with) it is important to reclaim
> any and all resource you might think are not actively used.
>
> The sockets might be dead, or the user of the client might just be
> enjoying a sandwich before she comes back surfing: Either way
> if the socket is idle for 5 minutes I want to be able to reclaim it for
> connections that actually carry some traffic.
>
> We can make a case for making this a CDL option..

I hate options :-) I guess if it was to be an option I would like to
have a minimize # of
sockets option.

> > Could CYG_HTTPD_SOCKET_IDLE_TIMEOUT be set to 0?
> > What would happen?
>
> I can interpret this question two ways:
>
> 1) CYG_HTTPD_SOCKET_IDLE_TIMEOUT equal 0 means that
> there is no timeout (i.e. remove the call to
> cyg_httpd_close_unused_sockets(). In this case the sockets will
> be opened forever. You are now at the mercy of the stack to
> determine that a socket is dead. Might work, but I have not
> experimented with it. Now, your delay is even more hardcoded
> (this time inside the stack itself.)
> 2) CYG_HTTPD_SOCKET_IDLE_TIMEOUT is active and equal 0
> in which case, with the current code you would effectively resort
> to closing each connection after the request was served. In other
> words, you void the advantages of persistent connections by
> reverting to HTTP 1.0. If you think 16 sockets are not enough
> with persistent connections you will hate the alternative, where a
> single web page with a lot of pictures can exhaust the number of
> sockets.

Is there a reason I would not want to minimize the # of sockets used?
I guess athttpd would
typically be used for some sort of logging/configuration server.
Performance is not so
much an issue at that point.

The minimum # of sockets would then presumably be with
CYG_HTTPD_SOCKET_IDLE_TIMEOUT  being somewhat near the length
of processing a request. 5 seconds seems like a reasonable default at
that point...


-- 
Øyvind Harboe
http://www.zylin.com - eCos ARM & FPGA  developer kit

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]