memory usage per connection?

I came across this blog entry from the developer of djabberd:
http://brad.livejournal.com/2258612.html

It claims that ejabberd uses 184KB per connection vs. djabberd's 5KB. Is this true? I'm still in the fact-finding phase of my project, so I haven't used either server yet.

In ejabberd 2.0.0 it seems around 46 KB per connection

Anonymous wrote:

It claims that ejabberd uses 184KB per connection

I did a simple test in a dummy ejabberd 2.0.0 server.

First I start ejabberd with the default configuration (which includes MUC service, PubSub, web admin and other additional stuff). I check memory consumption: 65 MB of virtual RAM, and 24 MB resident.

Then I created 1000 accounts with Testsuite. Using Jabsimul I logged in 500 accounts and checked RAM consumption: 88 MB of virtual, and 47 MB resident. So, the memory per user is approximately: (88000-65000)/500 = 46 KB virtual, and almost the same value for resident.

Finally, I logged in all the 1000 accounts: 111 MB of virtual, and 71 MB resident. So, the memory per user is approximately: (111000-65000)/1000 = 46 KB virtual, and almost the same value for resident.

Summarizing, I estimate that ejabberd currently requires 46 KB per user. This is lower than Brad's old estimation of 184 KB. However, it's still bigger than Brad's old estimation of 34 KB or 5 KB for djabberd.

However, memory is not the only characteristic to take into account. There's also CPU consumption, stability, protocol compliance (XMPP and XEPs), additional services (MUC, PubSub, PEP, ...), additional features (Web Admin, Ad-hoc admin, command line admin, hot code update, ...).

Syndicate content