[ejabberd] connection rate in ejabberd.

-=Devil_InSide=- devil_inside at mail.ru
Sat Dec 22 01:00:46 MSK 2012

,-------------[Sat, Dec 15, 2012 at 06:30 -0800, -=Devil_InSide=-:]
|more details are here: http://www.ejabberd.im/node/8915#comment-59307
|short situation:
|we have ejabberd 2.1.11 + ldap auth + mod_shared_roster_ldap + ~2100
|ldapusers in it.
|working users now is ~350.
|when we have network problem or restart of ejabberd server, etc, all clients
|wants to connect at once.
|ejabberd takes 28 clients quickly at short waves (10....8....6...4...2....)
|and after works on clients with some delay.
|we have client named "vacuum".
|very useful and comfortable, but old version has hardcoded timeout 30 sec
|for connection and 30 sec for recieving roster. 
|clients can't recieve full roster in 30 sec and brokes connection and make
|this produce unfinishable queue, which i have to process by hand for a few
|in new version authors fixed this timeout, but we still have a question
|about server's strangeness.
|in documentation i see pssibility to rule connection speed and size of
|sending packets. all these option has no effect. 
|in fact, small values makes situation more warried, setinng shaper and
|stanzas off or to big values has no desired effect.
|iptables is off.
|i made a cluster (2 server for one node), it helpfull for situation, but
|problem is persist as same, as in one server. two server makes it smaller.
|config are pasted in forum (link above). if someone needs it by attachment,
|i'll attach it.
|why we have such connection rate and where should i look at first?
|has anyone any idea?

last looks in ejabberd shows:
may be, it is connection rate, but question not at all in one this thing.

some users connects to ejabberd. tries to get roster. can't get it in client timeout. and after next some reconnects go to "connection timeout" state. it takes some time, while they can't connect to ejabberd.

in mnesia scheme i did see table temporarily_blocked.
in options i see acl {access, c2s, [{deny, blocked}, {allow, all}]}
i removed part {deny, blocked} from this list, but it was not helpful.

i think, ejabberd has some mechanism to block users.

now problem with one-time connections from ~350 users goes far: i did a cluster with 4 nodes.
with 3 nodes users can connect and can be non-blocked. and version of client is fixed with more default timeout.
it is now enough for our big dynamic roster with contacts in icq gates and large local ldap roster.

but i still have question: 
what the mechanism and how i can rule it?
it nesessary question, because if problem will return, i need to know - why it happens and what i can do with it.

in documentation i nowhere did see this functionality.
but i see it in action.

mpd status:	[playing]
Ted Nugent - Hey Baby
*  jabber:  devil_inside at jabber.ru   *
*   Registered linux user #450844    *

More information about the ejabberd mailing list