[ejabberd] ejabberd and http-bind - optimization tips

Milton Moura miltonmoura at gmail.com
Fri May 7 14:33:25 MSD 2010

Hi there,

I've been helping Sofia with this setup and I am able to provide you with
some more info.

We are running a 5 machine ejabberd (v2.0.5) cluster on Amazon EC2, with one
of the VMs hosting the web chat client with nginx and proxying client
requests to /http-bind through an Elastic Load Balancer that distributes the
5280 load between all 5 VMs, on port 5280.

We have been doing some load tests with browsermob, with a special focus on
evaluating how many concurrent users we can support on a single muc room
with this setup.

So far, we have hit a ~60 concurrent user bottleneck on a single room, with
the following behaviour:
  - messages are routed with a few seconds delay (5-10 seconds and more, as
users approach 60+)
  - new web clients are unable to connect, when hitting these limits
  - there have been situations when the room "destroys" itself, after some
minutes of un-responsiveness
  - these anomalies are witnessed even if we connect to this muc room
through a typical jabber client to port 5222, like Adium, so I believe we
can rule out a bottleneck on the HTTP transport
  - CPU and memory usage on all nodes is very low (most have over 1.1gb ram
free and cpu load factors are always below 0.1)
  - when experiencing this slowdown in one room, if we create or join
another room with very few users via web client or Adium, there is _no_
latency on messages or joins -- everything behaves as normal
  - when experiencing the slowdown, if I try to list the available rooms via
the web admin interface, I get a correct count but the page at
'admin/muc/rooms' throws an error

I am led to believe that the bottleneck might be somewhere in the routing or
queueing code that manages the messages sent to a single muc -- otherwise I
have no clue what might be the issue here.

Any further suggestions?

Best regards,

On Thu, May 6, 2010 at 3:00 PM, Christopher Zorn <christopher.zorn at gmail.com
> wrote:

> 2010/5/5 sofia cardita <sofiacardita at gmail.com>
>> Hi again :)
>> What is the best setup for an ejabberd server that only serves through
>> http? What kind of things should I look out for? Currently we're serving
>> through nginx and we notice the server gets slower as more clients add up,
>> even with a small number of clients, eg. 20. This is really bad so what
>> should be done to avoid this?
> What version of ejabberd are you using? The newest 2.1.x has performance
> improvements to BOSH.
> If you have the newest you shouldn't see a slowdown on 20 connections. It
> could be something else causing the issues.
> Are you using it for IM or something else? Do you see the same problems
> with 20 regular connections?
>> Thanks,
>> Sofia Cardita
>> _______________________________________________
>> ejabberd mailing list
>> ejabberd at jabber.ru
>> http://lists.jabber.ru/mailman/listinfo/ejabberd
> _______________________________________________
> ejabberd mailing list
> ejabberd at jabber.ru
> http://lists.jabber.ru/mailman/listinfo/ejabberd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.jabber.ru/pipermail/ejabberd/attachments/20100507/926dba9f/attachment.html>

More information about the ejabberd mailing list