[PLUG] Re: Re: Email server performance

Wil Cooley wcooley at nakedape.cc
Sat Apr 16 03:30:19 UTC 2005


On Fri, 2005-04-15 at 12:27 -0700, Robert Anderson wrote:
> On 4/15/05, Wil Cooley <wcooley at nakedape.cc> wrote:
> > On Fri, 2005-04-15 at 10:59 -0700, Robert Anderson wrote:
> > 
> > > Any ideas of how I could address the performance problems? Should I
> > > switch the users to pop3? Put a cap on mailbox size? Any help is
> > > appreciated.
> > 
> > Add more disks, get faster disks, or move the filesystems around to
> > distribute the load.  What is your storage subsystem like now? 
> 
> 2 mirrored SATA disks, probably 10k rpm, not sure.

Not bad.  Hardware or software RAID?

> > I would
> > definitely recommend against switching them to POP3 if you're using
> > IMAP.  What IMAP server are you using? 
> 
> UW-imapd.
> 
> > Is this 180 concurrent users?
> 
> Concurrent mostly. 

Ouch.  That's a setup I wouldn't wish on anybody--no wonder your
hardware seemed like overkill.  I would recommend investigating Dovecot
or Cyrus.  I'm going to be talking about Cyrus this Wednesday at the
Advanced Topics meeting; are you the guy in Idaho?  (That reminds me, I
need to bug Alan to update the announcement.)  With either Dovecot
(using Maildir) or Cyrus, messages are stored in individual files,
instead of one file per-mailbox (Cyrus doesn't use Maildir, though).
Large single-file mailboxes are frightful for memory consumption.  Cyrus
maintains a database of headers, which keeps the open-files down, which
can be a problem with Maildir as Paul mentioned.  Cyrus also has a few
nice features you won't get with the others:
  o Indexed server-side searches, which makes searching even large 
    mailboxes really fast.
  o Shared mailboxes, which have a number of uses.
  o Server-side filtering with Sieve.  Easier to mere mortals to deal 
    with and there are several nice web-based apps to managing the 
    filters.
  o Good support for off-line/cached mode with clients; I'm not sure 
    how well UW or Dovecot handle these.
  o Single-instance store (a message delivered to a dozen people only 
    requires one file with hard-links; can be a big savings with disk 
    space and disk I/O, especially if people like to send around large 
    documents and such).
  o Duplicate suppression (you only receive one copy of message).
  o Real quotas; users can be warned when they're approaching their 
    quota.
  o Forced server-side message expiration.
  o Native SSL support (Dovecot probably has this; AFAIK you have to  
    use 'stunnel' to do IMAPS with UW).
  o Multiple "partitions" for mail stores.  Add a couple drives, change 
    some configuration settings, and new mailboxes are created there.  
    It's nice not only for adding capacity but also to load-management.

The downsides to Cyrus are:
  o Migration from mbox can be a bitch.  It's been a long time since 
    I've done a migration and there are some tools now that might make 
    it easier.  It's been on my to-research list for a while.
  o Procmail for filtering is discouraged.  Procmail has a number of 
    problems anyway:
    * Less efficient than Sieve, due to forking and all that.
    * Incomprehensible to most people.
    * Can lose mail if it gets in a bind.  (Sieve will just deliver to 
      the INBOX if it gets into problems.)
  o Can be more work to manage.  You have to manually create users' 
    mailboxes (just their INBOX; they can then create their own 
    subfolders).  Managing the ACLs, quotas, and whatnot is generally 
    done with a command-line tool which can be hard to understand.  
    There's a nice Webmin module that I like, called "IMAP Admin."
  o Database problems have been problems in the past (mainly due to 
    deficiencies of the Berkeley DB), but thanks to the integrated 
    "Skiplist" and prevalence of BDB4, those have mostly gone away.
  o Authentication has been difficult in the past.  The addition of 
    'saslauthd' to Cyrus-SASL has eased that considerably.
  o The docs kinda suck.  I've been working on updating the Cyrus IMAP 
    HOWTO (http://nakedape.cc/info/Cyrus-IMAP-HOWTO/), but it's been  
    going slowly.  O'Reilly published a book called "Managing IMAP" a 
    few years ago that covered Cyrus, but it's horribly out of date 
    now.  My Advanced Topics talk is a preparation for the presentation 
    I'm doing at Linuxfest Northwest 
    (http://lfnw.blug.org/fest2005/event.dxp?id=47).  I intend to do a 
    bit of work on the HOWTO in preparation.

Here's some information about the setup OSU uses:
http://www.onid.orst.edu/docs/technical/servers.shtml

Wil
-- 
Wil Cooley                                 wcooley at nakedape.cc
Naked Ape Consulting                        http://nakedape.cc
* * * * Linux, UNIX, Networking and Security Solutions * * * *
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.pdxlinux.org/pipermail/plug/attachments/20050415/105af667/attachment.asc>


More information about the PLUG mailing list