[ejabberd] Identifying pubsub performance bottlenecks

Matthias Rieber ml-erlang at zu-con.org
Fri Oct 12 01:18:40 MSK 2012


I'm testing ejabberd 2.1.11 as a pubsub-only server. I've tested the 
following load:

1. about 3000 pubsub nodes
2. there are about 10-20 publish events per second to the 3000 nodes 
(total, not each node).

Then with tsung:

3. Connect 5000 (rate: 20/s) users
   1. wait between 60 and 600 seconds
   2. subscribe to 50 nodes
   3. wait 20-240 seconds
   4. unsubscribe from the 50 nodes
   5. wait 1-10  seconds, repeat.

The speed is quite decent till 1000-2000 users, like few milliseconds 
for subscriptions and events, but after a certain point, the times 
increase to several seconds.

I've tried to disable "persistent-items" to remove some load from the 
database, but the difference was not significant. I also changed the 
pubsub tables from disc_copies to ram_copies. But again, not a big 
difference. The network and cpu seems not to be saturated.

So the question are, what speed can I expect from a single node and how 
can I find the bottleneck.


More information about the ejabberd mailing list