[ejabberd] Identifying pubsub performance bottlenecks
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
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