Re[4]: [Exim] high load tcp connection characteristics

Top Page
Delete this message
Reply to this message
Author: Ross West
Date:  
To: exim-users
Subject: Re[4]: [Exim] high load tcp connection characteristics
Hi Nigel,

> You are misunderstanding how unix sockets work.


Or at least the programming portion of it. It's been quite a while
since I had to do any network based programming. :-)

> Exim basically has a choice - it can accept() the connection or
> ignore it, there are no other options.


As I stated above, it's been a really long time since I last played
with socket programming. Wasn't really thinking when I posted the
first message - my brain is only so big. I've since crash coursed
again in socket programming.

In retrospect another program I was dealing with would just close the
socket immediately without dumping any data to the client. Which to
the load balancers would be treated as the same as the OS refusing the
connection, and it would be shunted to another server.

That misunderstanding was passed onto me way to easily. Whoops.

> The other possibility is to make the daemon process close the
> listening socket when the number of incoming connections is at a
> maximum, and then loop waiting for other processes to die
> ...
> I think there will be all sorts of hidden gotchas
> in this course of action too. It would certainly stop you allowing
> special cases for some address ranges.


After reviewing the exim code, I don't think the current method is
going to change any time soon. :-)

> Can't you configure your L4 boxes to have a maximum number of
> concurrent connections to any one host - which would pass the
> problem to them :-)


Hmm, another interesting feature to add to the wishlist. But I've been
setting artificially low limits in exim to see the effect it would
have in case a local spammer puts through a gazillion connections at
once. The L4 boxes actually notice the socket getting shutdown early
and don't use that server for a while, but the error message already
gets sent out to the client which in this case is my stress test
software which quits out thinking it's reached the limit of the
server. <Sigh>

Cheers,
Ross.

-- 
  Ross West     mailto:exim@linepoint.com