benchmarking ejabberd
Posted by bene - 02/02/08 at 05:02:52 am2 years ago friends of mine and I got rid of some horribly lagging public jabber servers like jabber.ccc.de. We decided to run our own “private” server.
We first used jabberd 1.4 which then suddenly stopped working after upgrading to Debian Etch in April ‘07. So we decided to give ejabberd a try. It is written in Erlang and therefore tends to be fault-tolerant and scalable even with hundreds of active users.
After running it for 10 months we’re pretty confident with ejabberd. I can not even remember typing something like /etc/init.d/ejabberd restart a single time
Motivated by a nice talk about Erlang on 24c3 I finally made it to ran a Tsung ejabberd benchmark tonight.
Since Tsung itself is written in Erlang, it can simulate hundreds or thousands of users.
I started setting up a bunch of users which Tsung uses to login:
for i in `seq 1 1000`;
echo $i && ejabberdctl register tsung$i jabber.example.com p4ssw0rd$i
In the next step you configure what and how Tsung benchmarks in ~/.tsung/tsung.xml
In my case I defined 300 users to be logged in at the same time, modifying their roster and of course exchanging some messages: tsung.xml (html).
Furthermore I configured three load levels with the intervals 0.01s, 0.1s and 1s (see the <load> section). You will clearly recognize them in the generated graphs.
So, here they are: the results
I guess the server and the benchmark could be tweaked, but the performance is already much over our needs
PS: ejabberd 2.0 is going to be released soon
PPS: tsung is not yet in portage so I wrote my own ebuild: tsung-1.2.1.ebuild
No Comments yet »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Powered by WordPress with GimpStyle Theme design by Horacio Bella. Get Entries and comments.