ejabberd 2.1 vs 3.0 PubSub processor usage

ejabberd’s PubSub implementation covers most of XEP-0060 specification. This involve some complexity server side, sometimes at cost of performances. So PubSub’s optimizations was one of the main concern on the ejabberd 3 roadmap.

We’re finally pleased to show some good results on this side.

PubSub

This shows ejabberd processor usage while running a Tsung benchmark scenario, which simulated PubSub items published every minute and users subscribing to PubSub nodes on ejabberd 2.1.11 and 3.0.0. The 2.1.11 stopped early during the test by not responding and consumming 100%CPU on a thread with 50000 subscribers, while 3.0 was using 1/4 of processor ressources at the same time and was able to complete the whole test, handling 60000 subscribers with no more than 14% CPU on a dual core system.

By Christophe Romain

Support and Delivery Manager

8 comments

    1. This is a quite different code base and we need to extract an open source version from the commercial one. It will require some architecture changes to make us able to keep private the modules we want to keep private. That’s quite some work, so no date yet.

      1. Great! Is this improved PubSub module one of the ones you intend to keep private? Also, will there be mnesia table migration scripts/tools for 2.1 users?

  1. Amazing! Then, up to how many subscribers to a pubsub node be feasible now? Say, if there are 10 ejabberd nodes clustered, each with 100k clients connected, then can all those 1M clients subscribe to one pubsub node and exchange messages? Guess it would be a tough test.

    1. Indeed, we are working on such kind of bench. Stay tuned in coming weeks…

Leave a Reply to Monty2 Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Exit mobile version