North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

Re: Scalable Mail solution with NAS

  • From: Sebastien Berube
  • Date: Wed Jan 31 11:09:27 2001

On Wed, 31 Jan 2001 [email protected] wrote:

> On Wed, 31 Jan 2001 10:13:40 EST, [email protected] said:
> > Is the number of mailboxes the key metric?  What breaks sendmail + "a
> > very big disk"?  Isn't it the traffic?
> The two biggest problems with very-high-volume servers and sendmail are:
> 1) You *really* need to use multiple queues and some sort of aging scheme,
> so mail backlogged for dead hosts gets out of your main queue.  If a queue
> gets too full, Sendmail exhibits bad O(N**2) behavior in sorting/running
> the queue.
> 2) If you are serving mailboxes (as opposed to a Listserv-type machine where
> the mail *leaves*), what can kill you isn't the sendmail, but the local
> delivery program and POP/IMAP checks.  You get enough bozo users who have
> set Eudora to check for new mail every 2 minutes, you'll get bogged down
> no matter HOW fast Sendmail itself is.

Your second point should in fact be splitted in two.  

1. Your going to have a hard time handling the amount of incomming pop
connections, yes.  That's true, and there's nothing you can do about it
execpt scale your server farm in consequence or deny consecutive
connections within a 5 or 10 minutes period.

2. The more mailboxes you have, the slower the entire popping process will
be.  The reason is very simple, each pop process will spawn and read your
mailbox directory.  In the case where you have delivered all your mail to
mailboxes all sitting in the same directory, it will take more and more
time to scan the directory to find your mailbox.  One way to fix this
issue would be to use a hashing scheme to split the amount of actual
mailboxes into a subdirectory structure.  You could get something like 

[email protected] would have his mailbox in 


so in /export/mailboxes, in order to find the j directory, you only have
about 36 directories entries or so.

Although this example is not good in the case where you accept usernames
with 3 or less characters.


Sebastien Berube
[email protected]