hi

Just a few notes on qpopper's performance:

The major performance bottleneck for current versions of qpopper is the
Berkeley mailbox format, i.e. all messages in a single file.
If you have several large mailboxes (say 20Mb+) on the system and users
leave mail on server and then check mail every other minute, your box is
spending an incredible amount of IO resources reading and rewriting those
mailboxes every time those users connect.
Less than 5% of user population in that case can use up to 90% of system
IO resources.
qpopper's server mode doesn't help much in case user leaves messages
on server, since qpopper still needs to read the whole mailbox every time
and then, if any new messages arrived during the active pop session, to 
rewrite the mailbox.
Keeping mailbox files in user home directories rather than in /var/mail also
helps with locking, but doesn't help much with IO.

There're different approaches, e.g. Cyrus, which uses one file per message
plus index files format.
This works much better since you're solving locking and IO performance
problem at once.
Yes, this will also require our own local delivery agent, but it's probably
worth it.
Cyrus is a much larger project, has a huge codebase and almost nothing
happened with it during the last year.
It would be really great if qpopper supported some high performance mailbox
format.

So, the question is

Are there any plans to support non-Berkeley mailbox formats ?

thanks

--
rgds,
serge

Reply via email to