Following my earlier post about the limits of expansion ...
Exim handles expansion to some 8,500 addresses without breaking sweat.
The expansion happens in ~ 1 second (may be less, can't tell) and then delivery
starts.
I promised to report how long it took, here are my results along with a couple of
questions.
First a bit about what is happening in the routers.
* Standard bits about checking remote addresses & looking in /etc/aliases.
* recognition of expansion addresses on 3 routers by regular expressions (for teaching classes/groups).
* recognition of 'all' and expansion by
data = ${lookup mysql {select distinct SamAccount from StdInfo}}
redirect to another router, this checks the existance of the user's cyrus directory,
if it isn't there is drops through to the next router which is redirect to :blackhole:
The point is that 62% students have not logged in or received mail - so don't send
them mail on the basis of an expansion - they will prob never see it.
So:
delivered via lmtp to cyrus (batched in 20): 3,185
route to black hole: 5,318
undelivered (quota exceeded): 6
All in 7.5 minutes.
The performance is good enough for the college.
The blackholing was fast ( > 5,000/second) - this was testing the existance of the user's cyrus directory.
Delivery to Cyrus. The batching in 20s was visible in the log file, one line with '=>' followed by 19 '->'.
A '=>' was often 4-7 seconds after the previous line, but sometimes there would be 60 lines
all with the same time.
Here is the difference between '=>' & '->', the 2 columns are count & seconds:
58 0
25 1
14 2
18 3
16 4
13 5
7 6
6 7
2 8
2 9
1 14
1 15
I suspect that MS Active Directory was a bottle neck, but have no idea how to show this.
A bit about the setup:
Cyrus 2.1.15 = yes I know that it is old, updating this is on my jobs list.
Exim batches to cyrus in 20s, I will increase this after upgrade.
cyrus-sasl 2.1.15 (also needs updating), authenticating off active directory via LDAP
CPU, Dual: Intel(R) Xeon(TM) CPU 2.40GHz
RAM: 4GB
Disk: mailstore & exim spool on one dedicated disk: MegaRAID, LD1 RAID5 09634R (whatever that is)
Filesystem: Reiser
OS: SUSE SLES 8, 2.4.19 Kernel
I added the one_time option as the expansion was happening every time the queue runner ran
for the 6 over quota.
Questions
*********
* If I am delivering to all@ and the mailbox is full, we want to discard the mail.
How do I do this ? There is not a ignore_status option as with the pipe transport.
This will avoid stuff hanging around in the queue & tough on the student.
* The lecturers want to receive a delivery report -- one email reply telling them
who the mail was delivered to and who it was discarded (blackholed).
--
Alain Williams
Linux Consultant - Mail systems, Web sites, Networking, Programmer, IT Lecturer.
+44 (0) 787 668 0256
http://www.phcomp.co.uk/
Parliament Hill Computers Ltd. Registration Information:
http://www.phcomp.co.uk/contact.php
#include <std_disclaimer.h>