[Exim] Exim 4 not spawning multiple delivery processes

Top Page
Delete this message
Reply to this message
Author: Gavin Sherry
Date:  
To: exim-users
Subject: [Exim] Exim 4 not spawning multiple delivery processes
Hi all,

I am running exim 4.30.

I have a director reading email addresses out of a PostgreSQL database.
Some messages have around 10,000 recipients.

At any given time, 5 or 6 messages with an average of 5,000 recipients
will be queued. All are SMTP based deliveries.

I have configured exim with:

queue_run_max = 50
remote_max_parallel = 150

To be able to best parallelise the delivery process. However, in the
majority of cases 1 or 2 ,essages do not spawn multiple delivery
processes, meaning that delivery is serialised and therefore slow. (My
configuration has nothing else out of the ordinary, except a few
transports to read addresses out of postgres).

I can see that delivery is slow by checking msglogs and seeing that
'transport succeeded' is logged only once every 1 - 10 seconds, say,
according to the timestamp. Locating the process and killing it generally
has the 'desired' effect -- namely, the next queue running picks up the
process, does its thing, and then spawns lots of delivery processes.

I thought I might be hitting kernel limits (on Linux 2.4). The (root)
process starting exim has the following ulimit:

core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 8192
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 8192
cpu time             (seconds, -t) unlimited
max user processes            (-u) 7168
virtual memory        (kbytes, -v) unlimited


Of course, I may be wrong in assuming that exim inherits these across the
root->exim change.

Does anyone know how I can rectify this problem?

Thanks,

Gavin