[imp] Performance scaling. - Experiences from a reasonably large imp installation

vviitane+mail.imp@mappi.helsinki.fi vviitane+mail.imp@mappi.helsinki.fi
Thu, 27 Sep 2001 18:13:14 +0300 (EEST)


My 0.02euros on imp performance:

Here at the University of Helsinki IT department, we've run imp for
quite a while. Currently we run version 2.2.6 with lots of local
modifications, using HTTPS connections. Imp->imap server is plain imap,
but it's no problem. This Monday (a typical day, as good as any other),
there were 20504 logins on our Imp, from 9118 different users, so I
qualify us as a reasonably large installation :)

Our Imap servers are two Sun E450's with four processors and 2G ram,
running Cyrus 1.6.25.

Main www+imp database server is a Sun E450 identical to the imap
servers, running mysql and apache. This server, in addition of being the
main www server of the university (over 1 million requests/day, not
counting HTTPS traffic), handles 1/7 of imp users. The link we offer to
our webmail system is a small load-balancer php script which redirects
users to different servers on a weighted random (unix-time mod 7...)
basis.

Imp-servers are separate cheap intel-linux boxes, currently we have a
800MHz P3 with 512M ram and a 2*1GHz P3 with 1G ram. Each imp-server
uses local session database in mysql and stores addresses and
preferences in the main database. The boxes are totally redundant and
have identical software, if one breaks we'll just buy a new one and copy
the installation.

The two imap servers are handled transparently in imp: I've made an imap
proxy (it's an ugly hack really) using SGI state threads library that
connects to the correct server based on the username. Some day (...) I
plan to make the same proxy do imap session caching as well so that each
operation in imp wouldn't fork a new imapd. If there are people
interested in helping with this (or in the proxy in it's current sorry
state), contact me off the list...

-- 
________________________________________________________________________

Viljo Viitanen                                    University of Helsinki
Viljo.Viitanen@helsinki.fi                                 IT Department