[ejabberd] More virt host woes.

Jesse Thompson jesse.thompson at doit.wisc.edu
Thu Feb 7 17:58:48 MSK 2008

Pedro Melo wrote:
> If you are a hosting company or an ISP and want to offer XMPP hosting  
> to your clients then you need to host thousands of domains in a  
> single ejabberd cluster.
> Doing that with current ejabberd is impossible.

Obviously you can run multiple domains in a single ejabberd cluster. 
We're running 15 currently.  There are limitations to running many 
domains, but is it really impossible to run thousands?  Maybe it would 
be better for everyone if we stick to addressing the issues, rather than 
declaring the task impossible.

* You can't add domains without restarting ejabberd.  We schedule 
restarts during our weekly maintenance window to add new domains.

* You might run into file descriptor limits.  We had to compile 
erlang/ejabberd as 64-bit to keep from running into a file descriptor 
limit bug in 32-bit Solaris libc.

* ODBC/LDAP connections aren't pooled across vhosts.  But you don't need 
to use ODBC.  We use use an external authentication script (one instance 
per vhost) that authenticates against LDAP and also has some additional 
authnz logic specific to our environment.  We use Mnesia for rosters and 

* Memory requirements.  We managed to get ejabberd to consume 4 GB of 
memory during a load test.  We worked around this by tuning Mnesia 

* Certificate management.  The XMPP specification requires that the cert 
match the domain, not the server.  This makes it very difficult for 
hosting providers.

I'm still new to ejabberd, so I'm sure that there are more issues 
lurking under the surface.  However, our load testing has shown that it 
is possible to run at least a few hundred domains in single ejabberd 
instance, which meets our requirements for future growth.


More information about the ejabberd mailing list