Re: [exim] Delaying in answering incoming SMTP

Top Page
Delete this message
Reply to this message
Author: Jethro R Binks
Date:  
To: exim-users
Subject: Re: [exim] Delaying in answering incoming SMTP
On Tue, 21 Oct 2008, Justin Givens wrote:

> When the load is low (<10) I can expect to telnet to my mailserver on
> port 25 and see the connection opened and the exim smtp banner near
> instananeously.
>
> However, when the load gets above 10, which it does frequently, we can
> expect to wait anywhere between 1-5 seconds for the connection to be opened
> and the banner to display.
>
> This is causing some of my users trouble with their clients timing out
> and it's also causing me to receive a ton of notifications from Nagios
> claiming there's a problem.


I don't know about the original cause of this issue, maybe DNS lookup
delays or something? But anyway, it is somewhat concerning that you have
clients failing because of this relatively short delay. A properly
behaving client should not be disuaded by this. You should probably
investigate what software the clients are running. You may also want to
check out the Exim parameters that control how it deals with high load
situations -- see them indexed under Resource Control in the spec:

http://www.exim.org/exim-html-current/doc/html/spec_html/ch14.html#SECID105

smtp_reserve_hosts in particular may be of help in some situations,
depending on what you know about your clients.

In my case (although in an MX context, not in one accepting mail from
local users), I *force* a delay of 6 seconds at smtp connection before
sending a response:

acl_smtp_connect:
...
  accept
    delay = 6s


I impose delays at various other times too, which help to shed connections
from poorly-written SMTP clients, normally spam engines (and crap
clients).

However I do remember that Nagios had a problem with that (may depend on
the plugin you are using, or its SMTP library), so I made a special
exception for my Nagios host. In acl_smtp_connect, but above the delay, I
have:

  accept
    hosts = SPECIALHOSTS


where SPECIALHOSTS is a macro that evaluates to a list of hosts, one of
which is my Nagios host.

None of this helps when the delay is involuntary though, as apparently in
your case.

Jethro.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jethro R Binks
Computing Officer, IT Services
University Of Strathclyde, Glasgow, UK