ejabberd doesn't work under high load

Hi everybody, as in the post before I could solve the problem of importing jabberd1.4 users, but it looks like it doesn't work anyway when exposed to the high load of the main server, whereas it worked ok on a secondary port on the same server.

The HTTP admin interface stopped working, I couldn't login and ejabberdctl gave this error message:

root@picard:/var/lib/ejabberd#ejabberdctl registered-users
Can't get list of registered users at node ejabberd@picard: {'EXIT',
                                                                {badarg,
                                                                    [{erlang,
                                                                         port_control,
                                                                         [stringprep_port,
                                                                          1,
                                                                          "jabber.linux.it"]},
                                                                     {stringprep,
                                                                         control,
                                                                         2},
                                                                     {jlib,
                                                                         nameprep,
                                                                         1},
                                                                     {ejabberd_auth,
                                                                         auth_module,
                                                                         1},
                                                                     {ejabberd_auth,
                                                                         dirty_get_registered_users,
                                                                         0},
                                                                     {rpc,
                                                                         '-handle_call/3-fun-0-',
                                                                         5}]}}

I used the options -env ERL_MAX_PORTS 5000 +P 250000 -env ERL_MAX_ETS_TABLES 20000 as written in http://www.ejabberd.im/tuning.

I would hate to try and switch to another jabber server yet, but it looks like I can't make ejabberd work and jabberd1.4 can't handle the load on my machine. Any ideas?

Thanks
Matteo

You said on another

You said on another thread:

I have a (too much) successful jabber server with ~7700 registered users, and ~600 peak concurrent connections each day.

And now:

it doesn't work anyway when exposed to the high load of the main server

It's strange that only 600 users can generate so many load. njs.netlab.cz has around 1100 concurrent users, gizmoproject.com 1800, jabber.ru 2000, and they work perfectly.

  • Have you verified that it works correctly if there is not load? After restart, for example.
  • Did you check CPU and MEM usage (the ejabberd system process is probably called 'beam')?
  • What are the system specs (CPU, amount of RAM, operating system/distribution)?
  • Did you take a look to the logs? Maybe there are ERROR REPORT or warnings.

What a coincidence: I am

What a coincidence: I am experiencing the same errors! :-)

At least it is not caused by high load. If I install the Linux installer on a (not up-to-date; it is for testing) Debian installation and replace the default configuration with this one:
this config file, I get the same errors when running ejabberdctl and connecting to the server is not possible.

If I change these lines in that config:

{access, announce, [{allow, direction},
      {allow, admins}]}.

Into this:

{access, announce, [{allow, direction}, {allow, admins}]}.

Then it works!

The strange thing is, is that I cannot reproduce the error on other systems when I do exactly the same (Linux installer, same config):

Not working systems:

  • Linux genesis 2.4.27-2-k6 #1 Mon May 16 17:10:52 JST 2005 i586 GNU/Linux

Working systems:

  • Linux atenea.pike 2.6.11-1-386 #1 Mon Jun 20 20:53:17 MDT 2005 i686 GNU/Linux
  • Linux levi 2.6.10-5-386 #1 Fri Sep 23 14:13:55 UTC 2005 i686 GNU/Linux

What is your system? Maybe Linux 2.4 is the delinquent...

--
sander

More informations needed

Hello Matteo,

Could you confirm what version of ejabberd your are using ? Did you install it with Linux installer or did you compile it ? Which version of Erlang are you using ?
Do you have a 2.4 kernel ?

We need more information to be able to help you.

Thank you !

--
Mickaël Rémond

Syndicate content