On Fri, 22 Jan 1999, Mike Horwath wrote:
I did that here with approximately 12000 mailboxes.
Now that server (F720) is sustaining 2000+ ops a sec and is not nearly as responsive as it used to be.
Monolithic mailbox files or MH/MailDir-style mailboxes (one message per file)? Is your /var/spool/mqueue on local disk or NFS? How much of that NFS traffic is from POP3 and how much is from SMTP? I'll bet most of it is POP3. Sendmail only has to append messages to mailboxes. Most POP3 servers have to scan the entire mailbox every time someone connections, to get headers and a message count. Some POP3 servers will make a copy of the entire mailbox, zero out the original (in case more mail comes in), then copy undeleted messages back to the original when the user quits. That's potentially four times the size of your mailbox going across NFS, just to see if new mail has arrived. How many of your users have their mail programs set to check for new mail every 5 minutes? ;-)
This is my observation from watching our virtual POP3 hosting servers (which uses the traditional Berkeley-style monolithic mailboxes) and our dialup POP3 servers (which use MailDir-style mailboxes, with a dbm index file... no more header scanning!). Our four Netapps F230's on the dialup side each see 250 to 320 NFS ops/sec during peak times, with a much larger customer base.
The POP3 server reads in a small db index file that contains the message count, UIDL ids and line counts, reads individual mail messages only when required by the user, and issues an unlink() to delete a message. I figure this reduces disk traffic by about 95% compared to the standard popper or qpopper daemon, assuming your users tend to leave a meg or so of mail on the server.
I've run continuous POP3 benchmarks on the server: 99% of the time, it takes just under 4.00 seconds to open a connection to the POP3 port, issue USER, PASS, LIST, UIDL, RETR a 1.3K test message and finally QUIT. That's about three dozen NFS operations going over the wire, for a mailbox with 48 messages totalling 1100K. If the POP3 server has to read, write, re-read and re-write the mailbox, you would be seeing several hundred NFS ops plus all the associated bandwidth.
Now for my question: is there a freely available POP3 server that employs an index db file and MailDir-style mailboxes? The one mail system I am using contains proprietary hacks to sendmail and popper.