Re: [exim] What's the diffference between deliver_queue_load…

Top Page
Delete this message
Reply to this message
Author: Chris Siebenmann
Date:  
To: boyd yang
CC: exim-users, cks
Subject: Re: [exim] What's the diffference between deliver_queue_load_max and queue_run_max?
| Thanks Chris, the link explains clear and easy to understand.
| I think the total number of exim processes related to the CPU cores or
| memory size?
| What's suggested parameter values?
| Or should I test and adjust and work it for my machine(24cores
| /proc/cpuinfo, 64G mem)?


Unfortunately it's not simple to come up with good limits.

The number of CPU-using Exim processes that you want is highly related
to how many CPU cores you have (and somewhat to memory, IO bandwidth,
and network bandwidth). But most Exim processes are not going to be
active most of the time; instead they're likely going to be waiting
either for DNS queries or for the other end of a SMTP connection.

You have two options. First, you can set the numbers so that in a
relatively bad case your machine will not explode from overload. This
will probably leave your machine significantly idle most of the time
because bad cases are hopefully rare but it does mean that you won't
get stuck trying to revive the machine in the middle of your weekend.

Second, you can repeatedly tune the limits so that Exim uses most or
almost all of the machine's resources under its normal load. If there
is a serious load surge your machine will probably explode but in the
mean time you're pushing email out almost as fast as it can go. If
you go this route you want to be actively monitoring various sorts of
statistics so you can adjust things as conditions change. You will
definitely have to do a lot of initial testing and monitoring (and
the limits you set will depend very much on what sort of email you're
processing and how it's submitted).

For most people it's much more sensible to set your Exim configuration
conservatively because it's worse to have the mail server explode every
so often than to deliver email surges somewhat slower than you otherwise
could.

Note that under light load a normal Exim configuration will handle all
immediately deliverable email as fast as possible; it will come in over
SMTP (or locally) and immediately start a delivery process, which will
then immediately succeed. Setting limits is about what happens when you
have a lot of email come in at once, a lot of things in the queue, or
both.

    - cks


PS: for people who are worried about this, I recommend having a
    commented-out section in your configuration file that sets all
    sorts of low load-limiting parameters, like forcing all incoming
    email to be queued. Then if you get hit with a big load surge you
    have all of the settings you want ready to go rather than have to
    run around working out how to keep Exim from eating your machine.
    You can even make some of these settings conditional on files or
    whatever so you only have to change or create a file to have your
    Exim switch to panic-keep-the-load-low mode. Elaboration of this
    idea into working configuration stanzas does not fit within the
    margins of this PS.