> From: Henning Brauer [mailto:[EMAIL PROTECTED]]
> 
> On Mon, Aug 06, 2001 at 11:09:25AM +0100, Richard Underwood wrote:
> >     I've also noticed that if qmail tries to deliver (for example) 50
> > messages to one host concurrently, perhaps 2 will get through. The rest
will
> > be retried, but unfortunately they tend to get retried at much the same
> > time. Again, 2 messages get through, and the process repeats. This
simply
> > isn't efficient.
> 
> This isn't qmails fault but the fault of the remote host. There is room
for
> improvement - just not on qmail's side. The remote host MUST NOT accept
more
> connections than it can handle. If it does the remote recipients must live
> with the delays.
> 
        Read what I wrote again. It IS qmail's fault. One role I use qmail
for is to accept mail which is then passed on to an exchange server on the
same network. Here's an example of what can happen ...

        If the exchange server goes down, a large queue builds up. The
exchange server accepts something like 20 concurrent connections before
refusing to accept connections. This, as you say, is what the server should
do.

        When the exchange server comes back up, I kick the qmail-send
process to get it to deliver the queue. At this point I should be able to go
off and do other things.

        However, qmail tries to send the queue with lots of concurrent
connections. The first 20 work, but the rest are dropped. This then blocks
any further attempts for a time. After this time, the mails are tried again
- once more, lots of concurrent connections, more dropped connections, more
delays.

        In the end, I resort to sitting there watching the queue and kicking
the qmail-send process until the queue is small enough to go through without
help.

        The exchange server is working as it should be - it's dropping
connections once its connection limit is reached, but left alone, qmail is
being far less than efficient - sendmail with a single thread could deliver
the mail faster!

        Saying that there's no room for improvement on qmail's side is pure
arrogance. Just look at the number of patches available for it for a clue.
qmail is great, it works well, but it still could be improved.

        People complain about single message blocking their queue ...  Run
two copies? That works, but is it the best option? A configurable limit to
the threads per message would fix this. Prioritizing messages would be
better.

        The problem I describe above could be fixed by a configurable
per-host thread limit. Can you think of a neater solution?

        Blindly defending qmail isn't going to make it better. It doesn't
help, except in flame-wars. 

                Richard

Reply via email to