I am having trouble getting Exim 4.04 on a Debian 3.0 Linux box to do
load balancing using hosts_randomize with regards to dispersing email
to smarthosts.
I call Exim 5 times, the first 4 times with one thousand addresses
each, and the 5th time with slightly less than 1,000.
Exim then relays this to some smarthost machines for final delivery,
in batches of 100 addresses each. I have 5 smarthost machines, and
they are weighted according to the size of the pipe they are attached
to, with brisk.mail-list.com being the smallest pipe.
The eximstats reports shows the following
Grand total summary
-------------------
At least one address
TOTAL Volume Messages Hosts Delayed Failed
Received 22KB 5 1 0 0.0% 0 0.0%
Delivered 227KB 51 5
Top 50 host destinations by message count
-----------------------------------------
42 187KB breeze.mail-list.com
3 13KB brisk.mail-list.com
3 13KB express.mail-list.com
2 9096 velocity.mail-list.com
1 4548 swifty.mail-list.com
This is showing that breeze is handing 15 times the messages as the
other machines. All machines except for brisk.mail-list.com should
be handling roughly the same amount of email, and brisk should be 1/3
the amount of those.
The pertinent parts of my Exim configuration file are
remote_max_parallel = 5
begin routers
single_delivery_domains:
driver = manualroute
domains = ! +local_domains
self = defer
host_find_failed = defer
same_domain_copy_routing
route_list = * breeze.mail-list.com bydns
transport = one_hundred_smtp_X_Header
begin transports
one_hundred_smtp_X_Header:
driver = smtp
headers_remove = RESENT_HEADERS
size_addition = -1
connection_max_messages = 5000
keepalive
serialize_hosts = *
hosts_max_try = 5
gethostbyname
hosts = breeze.mail-list.com:\
breeze.mail-list.com:\
breeze.mail-list.com:\
brisk.mail-list.com:\
express.mail-list.com:\
express.mail-list.com:\
express.mail-list.com:\
swifty.mail-list.com:\
swifty.mail-list.com:\
swifty.mail-list.com:\
velocity.mail-list.com:\
velocity.mail-list.com:\
velocity.mail-list.com
hosts_override
hosts_randomize
max_rcpt = 100
I'v tried dropping the "breeze.mail-list.com bydns" from the
route_list statement of the router, but it causes a syntax error. I
have also tried it without the serialize_hosts argument of the
transport.
The randomization used to work just fine with alias files, and I'm
not sure why it's failing when being passed chunks of email addresses.
Does anybody see the error in my ways or have any suggestions ?
Thanks
mark