[ejabberd] ejabberd & http bind
carlos.abalde at gmail.com
Fri May 29 02:40:49 MSD 2009
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