Ejabberd Massive Scalability: 1 Node – 2+ Million Concurrent Users
blog.process-one.net
blog.process-one.net
> In the process, we also optimized our XML parser, released now as Fast XML, a high-performance, memory efficient Expat-based Erlang and Elixir XML parser
The shout out to Elixir is interesting. I glanced through the linked GitHub code and as far as I can tell nothing is written in Elixir, although it's still a trivially true statement since Elixir can easily use Erlang libraries. I guess Elixir is a big enough force in the Erlang community now that they want to highlight that their software works fine for Elixir users as well!
Whatsapp is based in Ejabberd.
Whatsapp has repeatedly documented how they achieve 2-3M connections per node.
http://www.erlang-factory.com/upload/presentations/558/efsf2...
http://highscalability.com/blog/2014/2/26/the-whatsapp-archi...
I encountered problems with the default kernel configurations during the writing of my bachelor thesis and wasn't able to really read up on what could have been done to solve those problems. For example i observed high cpu usage only on the first core (similar to what the author describes in the article) due to a high amount of network interrupts. I tried to make those interrupts to be handled by all cores, which was neither recommended (as i remember) nor did it really help.
What is more problematic IMHO is generating the load to saturate said server.
[1] http://link.springer.com/article/10.1007/s00607-014-0394-9
[2] http://www.cyberciti.biz/files/linux-kernel/Documentation/ne...
How it will work then?
I updated the post to fix typo and mention that test was not over TLS.