[ejabberd] ejabberd and http-bind - optimization tips
miltonmoura at gmail.com
Fri May 7 14:33:25 MSD 2010
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?
On Thu, May 6, 2010 at 3:00 PM, Christopher Zorn <christopher.zorn at gmail.com
> 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?
>> Sofia Cardita
>> ejabberd mailing list
>> ejabberd at jabber.ru
> ejabberd mailing list
> ejabberd at jabber.ru
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ejabberd