[imp] Server setup for customer base of over 10,000
Lord Apollyon
implist at paypc.com
Tue Sep 16 17:34:46 PDT 2003
> We are running into a problem with our Horde/Imp server at our
> university. When we converted to the CVS/head version of horde and imp
> last year we found that we could no longer use multiple servers for
> web/imap due to session information.
*DO* Check out "msession" which is a very high performance multi-box session
management engine which can interface to SQL backends if long-term session
state is desired (for IMP it's generally NOT).
I myself have used the ADODB (DB abstraction library which can offer a
nicely exported PHP-user-mode session management interface to any type of
SQL back-ends) with excellent performance, but msession would offer MUCH
higher speeds where transient session state mamagement is all that's desired.
Check it out at: <http://www.mohawksoft.com/devel/msession.html>
> We would like to know what others
> are doing for a user base of over 10,000. This would include dns,
> servers, etc.
I would think an imap-proxy would be in an important part of your strategy,
but I suspect due to the nature of how the imapd-proxy works, you'd want to
centralise the proxying functions. Namely, you have one machine be
dedicated to the imap-proxying, so it's the central repository of the reused
connections, etc. Make sure it has RICH connectivity too - like dual
100BaseT (or GigE) NICs - one side to handle the client requests and one to
the server end.
*DO* use multiple web-servers which make use of "msession" to distribute
session state so that if users connect to different web-servers, they don't
lose their session state. Configure your msession to *NOT* use a SQL
backend, since you're only after transient session preservation (lifetime =
one hour or less). msession offers wickedly high-speed session store modes
for such things. It's fully documented.
You might also need to use multiple SQL servers in replication mode, *IF*
you're finding that the back-end is starting to cramp your style. It's
probably not yet, though, since Horde/IMP makes pretty lightweight use of it.
I think multi-web, single-SQL, single-imapd-proxy should give you plenty of
joy in the performance end of things. Remember too the issues of network
contention/etc when usage gets really high. Don't be stingy with the
network cards. PHP is a resource *HOG* (with a huge litter of piglets) -
you will bog down there first.
Also, try to splay your mailboxes residing on your SAN across different
spindles. Remember the old mainframe rules - they still apply in the
"Modern Era". More spindles are always better. Don't underestimate the
costs of continual head-seeks caused by too many simultaneous requests to
the same filesystem, etc. Each seek costs in the realm of 5-10ms!!! This
cost is a basal transaction cost whether it's for 512 bytes or 512KBytes.
Good luck!
=Lord Apollyon=
More information about the imp
mailing list