[exim] 4.87 -> 4.88 readconf performance

Top Page
Delete this message
Reply to this message
Author: Wayne Cuddy
Date:  
To: exim-users
Subject: [exim] 4.87 -> 4.88 readconf performance
I've been running 4.66 on an internal HP-UX host for quite a long
time. We've recently upgraded the hardware and the OS so I figure now
is also a good time to upgrade EXIM to the latest.

This is a relatively high volume host, 1000000+ msgs per day that relays
mail to DMZ MX relays for internet destined email.

Nominally the load on the host is about .3. When I upgraded to 4.88 the
load on the host went upwards of 7 and the process that feeds EXIM
started to queue up msgs in it's database and backup.

I tried version 4.87 and it's performance is on par with 4.66.

The feeding application forks EXIM directly and pipes the message to
EXIM via standard input. I tracked the 4.88 performance degradation to
calls to readconf_main in exim.c. It does appear to have undergone
extensive additions/changes from 4.87->4.88.

Instrumenting the code with rudimentary timing metrics I found that on
average in versions 4.66-4.87 readconf_main takes < 9000
microseconds.

On 4.88 it takes on average 63000 microseconds.

This is a substantial increase and intolerable for our current
configuration and workload.

Looking at the code I doubt this is HP-UX specific.

Has anyone else experienced this issue?

I've not had the time to test other configurations or operating systems.

If I changed from piping the message to EXIM to connecting to
localhost:25 and sending the message via SMTP would that remove calls to
readconf_main. I assume not since it appears EXIM re-invokes itself for
delivery using the "-Mc <exim_id>" parameters.


I appreciate any assistance you guys can provide,

Wayne