I'm having some problems with process memory with ejabberd 1.1.4 running erlang R11B. When the number of users hits a certain threshold, anywhere between 1000 and 4000 depending on which server this is happening on, memory usage grows exponentially. It does not correspond with a similar fast growing pattern of traffic growth, simply reaching a threshold. I've been trying to solve this for a while with no success, does anyone have ideas?
Try with Erlang R11B-5,
Try with Erlang R11B-5, which is the latest stable revision.
Note that most big ejabberd deployments (for exampleJabber.org , Jabber.ru, Jabbim.cz, ...) use ODBC storage for the most consuming information (rosters, vcards, offline messages).
Similar Problem + Resolution
I noticed issues similar to this though it seemed to be due in part with the rate of which users were connecting. At first I attempted to resolve it by compiling Erlang R11B5 & OpenSSL from source but it still cropped up.
Eventually I just gave up on SSL in ejabberd itself (I couldn't test TLS as I couldn't find a BM app that supported it) and instead use our load balancers to make the initial SSL handshake a la:
external_client --{5223}-> (SSL) LB (UnEncrypted) --{5222}-> ejabberd_cluster
With SSL I was only able to get up to 5000 users before the system ram our of memory (8GB) but with this current setup I reached up to 18000 without any problems.