ejabberd 、mongooseIM 压力测试对比分析

The load tests we present were executed on the latest release of MongooseIM and ejabberd.

Software

OTP 17
ejabberd 2.0.8 (most recent version on Github)
MongooseIM 1.5
MySQL 5.5.24-0ubuntu0.12.04.1
Tsung 1.5.0a

Server node

Ubuntu 12.04 LTS, kernel 3.2.0-23-generic
AMD FX-8150 8x3.3GHz
32GB RAM

XMPP server configuration

Sessions: in Redis
User credentials: in MySQL


Both ejabberd and MongooseIM used the same configuration file. Following Erlang VM tweaks were used:
+K true
+A 5
+P 10000000
-env ERL_MAX_PORTS 1000000
-env ERL_FULLSWEEP_AFTER 2
-env ERL_MAX_ETS_TABLES 100000



4. “Max users” test

User arrival rate: 150/s
User count: 400k
Roster size: 100
Users don’t fetch rosters
No message exchange
The aim of this test was to check resource usage with maximum possible count of online users connected to server.

MongooseIM

During user arrival phase server CPU usage was about 50-70% per each core. After all 400k users connected, memory usage was 66%. It is probable that such setup would be able to handle about 500k-600k online users.

ejabberd

ejabberd uses slightly more CPU (about 70-80% usage) and about 30% more memory (while having 50k users less online than in case of MongooseIM!). Server behaviour is also significantly less predictable, because connect time often reaches 3.5sec and login time can rise up to 90sec! Due to these problems, the number of connected users might increase slower and with less stability.


你可能感兴趣的:(ejabberd,MongooseIM)