[ejabberd] CPU Utilization on ejabber servers

Badlop badlop at gmail.com
Fri Nov 4 11:53:02 MSK 2005

2005/11/3, Tiaan <tiaanh at gmail.com>:
> We're running two clustered ejabber servers on Windows 2003 systems, with
> close on 15 000 online users shared between the systems. The CPU usage on
> these systems is very high, and the memory utilization is at 1 GB, there is
> plenty of unused memory in the systems.

I don't know if the default configuration restricts Erlang to only 1
GB. If so, this factor is really important for you. Let's allow the
experts to comment this part, and provide a method to increment the
limit (if possible).

But anyway, another important factor you should consider:
15.000 online users = 7.500 users per machine = 7.500 TCP connections
= 7.500 TCP sockets that are open and must be consulted every fraction
of time = 100% CPU is used only to check the sockets

Solution: Kernel Poll

All the experiments I know of (myself, ermine at jabber.ru, the people
at Sipphone.com...) conclude that Kernel Poll benefits CPU usage when
there are a lot of connections (thousands). WPjabber, jabberd2 and
others provide Kernel Poll support for this reason, too.

In my experiments, CPU usage went from 30% without kernel poll to 4%
with kernel poll.

Remember that you can make tests, experiments and becnhmarks on a test
machine, generating load with programs etc, before making changes on
the production machines.

Correo: badlop at gmail.com
Mensajería: badlop at jabberes.org

More information about the ejabberd mailing list