Martin Waschbuesch ha scritto:

Am 06.07.2010 um 19:12 schrieb Tonix (Antonio Nati):

This is the global value, so keeping it low means to have a few global connections working. It would be great if connections could be reused, so only a minimum of connections should be opened for each destination IP.

It would be great to have such options:

    * concurrency remote: as now
    * new connection threshold [global]: if you have more than xx
      messages in queue for single destination IP, open a new connection
    * max connections limit [global]: per single destination IP max
      connection limit
    * new connection threshold [IP]: if you have more than xx
      messages in queue for a specific destination IP, open a new
      connection
    * max connections limit [IP]: per specific destination IP max
      connections limit

So, for example, you could put:
for gmail: threshold 300, limit 20
for yahoo: threshold 500, limit 10
for myspecific: threshold 0 (infinite), limit 1
for any: threshold 100, limit 5
maxconcurrencyremote: 100

Bear with me for a second here:

Admittedly, using one connection for multiple transmissions might be more efficient.

However, that is only true if you actually have at least n > 1 mails to send to the same domain at a given time. Unless you do emarketing (or have a huge mailing list) you do not know beforehand that this is actually the case. On the contrary, such a situation would be more or less random.

This basically means that every time qmail processes an item in its queue, it would need to do something like this:
- scan the queue for other emails to the same domain
- gather as many as the config says for that domain
- open a SMTP connection
- transmit the messages.
- dequeue the messages

The problem is this: For every time you only have one email to a specific domain in the queue, you add overhead instead of reducing it. The queue might be really full and still no other mail in it that needs to be delivered to the same domain. Thus, this makes only sense if you know beforehand that there is a high amount of concurrency to a specific domain.

On the other hand:
- transmitting one mail per connection is safe.
- limits for messages / connection might be subject to change without notice and everyone using such a config would then have lots of bounces, etc. until someone figures out what the ISP in question changed.

My users are used to have a message delivered in a few seconds, despite of destination. But when a "ligh" mailing list, or a message with 20 or 50 recipients, contains a nice number of recipients for the same domain, delivery of some messages takes dozens of minutes, because destination MX delay my servers. With the change I ask, I'd have the same quality of service for small traffic.

For large deliveries, I'm thinking to a patch for changing qmail queue (sending to a low priority mail queue), so I will not care of large mailing lists or messages with hundreds of recipients.

Ciao,

Tonino

I'm just focused on efficient e-mail server, simply.

So am I. :-)

Martin


--
------------------------------------------------------------
in...@zioni Interazioni di Antonio Nati http://www.interazioni.it [email protected] ------------------------------------------------------------

Reply via email to