[ejabberd] ejabberd & http bind

Carlos Abalde carlos.abalde at gmail.com
Fri May 29 02:40:49 MSD 2009

Hi all!

The last weeks I've been doing several stress benchmarks to different 
configurations of an ejabberd server using jab_simul and tsung. I've 
also tuned some modules (mainly the c2s frontend, the roster module and 
the authentication module) in order to reduce memory & CPU consumption 
and adapt them to my simplified requirements. The results have been 
pretty nice, however, after adding the BOSH support using the http_bind 
module, everything has got worse. Not only for the additional amount of 
required memory, but for the instability of the server.

I'm still investigating the origin of the problem, but I've detected 
that in a simple scenario (set of clients periodically changing their 
status and sending messages) the size of the FSM processes implemented 
in the http_bind module are constantly growing (the same scenario using 
the normal jabber interface works fine). Specifically, the req_list in 
the state record grows and grows until complete memory exhaustion.

FYI, my BOSH and non BOSH tests are conducted using a jab_simul-like 
multithread client that I've implemented (using the gloox library) to 
test and compare the bind and normal frontends (is there any stress tool 
with BOSH support?). Therefore, maybe I'm doing something wrong in my 
client implementation, but I think this is a very strange behavior.

Is this a normal behavior? How does the req_list buffer work? Any help 
will be welcome!



More information about the ejabberd mailing list