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.
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.