ejabberd - Comments for "ejabberd 2.1.4 crashes during stress test"
https://www.ejabberd.im/node/4316
enwe're using mysql odbc
https://www.ejabberd.im/node/4316#comment-56666
<p>we're using mysql odbc driver. </p>
<p>Here is the config file sans passwords</p>
<p>%%%<br />
%%% ejabberd configuration file<br />
%%%<br />
%%%'</p>
<p>%%% The parameters used in this configuration file are explained in more detail<br />
%%% in the ejabberd Installation and Operation Guide.<br />
%%% Please consult the Guide in case of doubts, it is included with<br />
%%% your copy of ejabberd, and is also available online at<br />
%%% <noindex><a href="http://www.process-one.net/en/ejabberd/docs/" title="http://www.process-one.net/en/ejabberd/docs/" rel="nofollow" >http://www.process-one.net/en/ejabberd/docs/</a></noindex></p>
<p>%%% This configuration file contains Erlang terms.<br />
%%% In case you want to understand the syntax, here are the concepts:<br />
%%%<br />
%%% - The character to comment a line is %<br />
%%%<br />
%%% - Each term ends in a dot, for example:<br />
%%% override_global.<br />
%%%<br />
%%% - A tuple has a fixed definition, its elements are<br />
%%% enclosed in {}, and separated with commas:<br />
%%% {loglevel, 4}.<br />
%%%<br />
%%% - A list can have as many elements as you want,<br />
%%% and is enclosed in [], for example:<br />
%%% [http_poll, web_admin, tls]<br />
%%%<br />
%%% - A keyword of ejabberd is a word in lowercase.<br />
%%% Strings are enclosed in "" and can contain spaces, dots, ...<br />
%%% {language, "en"}.<br />
%%% {ldap_rootdn, "dc=example,dc=com"}.<br />
%%%<br />
%%% - This term includes a tuple, a keyword, a list, and two strings:<br />
%%% {hosts, ["jabber.example.net", "im.example.com"]}.<br />
%%%</p>
<p>%%%. =======================<br />
%%%' OVERRIDE STORED OPTIONS</p>
<p>%%<br />
%% Override the old values stored in the database.<br />
%%</p>
<p>%%<br />
%% Override global options (shared by all ejabberd nodes in a cluster).<br />
%%<br />
%%override_global.</p>
<p>%%<br />
%% Override local options (specific for this particular ejabberd node).<br />
%%<br />
%%override_local.</p>
<p>%%<br />
%% Remove the Access Control Lists before new ones are added.<br />
%%<br />
%%override_acls.</p>
<p>%%%. =========<br />
%%%' DEBUGGING</p>
<p>%%<br />
%% loglevel: Verbosity of log files generated by ejabberd.<br />
%% 0: No ejabberd log at all (not recommended)<br />
%% 1: Critical<br />
%% 2: Error<br />
%% 3: Warning<br />
%% 4: Info<br />
%% 5: Debug<br />
%%<br />
{loglevel, 5}.</p>
<p>%%<br />
%% watchdog_admins: Only useful for developers: if an ejabberd process<br />
%% consumes a lot of memory, send live notifications to these XMPP<br />
%% accounts.<br />
%%<br />
%%{watchdog_admins, ["bob@example.com"]}.</p>
<p>%%%. ================<br />
%%%' SERVED HOSTNAMES</p>
<p>%%<br />
%% hosts: Domains served by ejabberd.<br />
%% You can define one or several, for example:<br />
%% {hosts, ["example.net", "example.com", "example.org"]}.<br />
%%<br />
{hosts, ["realtime.sgiggle.com"]}.</p>
<p>%%<br />
%% route_subdomains: Delegate subdomains to other XMPP servers.<br />
%% For example, if this ejabberd serves example.org and you want<br />
%% to allow communication with an XMPP server called im.example.org.<br />
%%<br />
%%{route_subdomains, s2s}.</p>
<p>%%%. ===============<br />
%%%' LISTENING PORTS</p>
<p>%%<br />
%% listen: The ports ejabberd will listen on, which service each is handled<br />
%% by and what options to start it with.<br />
%%<br />
{listen,<br />
[</p>
<p> {6222, ejabberd_c2s, [</p>
<p> %%<br />
%% If TLS is compiled in and you installed a SSL<br />
%% certificate, specify the full path to the<br />
%% file and uncomment this line:<br />
%%<br />
{certfile, "/local/ejabberd/etc/ejabberd/jabber.pem"}, starttls_required,</p>
<p> {access, c2s},<br />
{shaper, c2s_shaper},<br />
{max_stanza_size, 1048576}<br />
]},</p>
<p> %%{5269, ejabberd_s2s_in, [<br />
%% {shaper, s2s_shaper},<br />
%% {max_stanza_size, 131072}<br />
%% ]},</p>
<p> %%<br />
%% ejabberd_service: Interact with external components (transports, ...)<br />
%%<br />
%%{8888, ejabberd_service, [<br />
%% {access, all},<br />
%% {shaper_rule, fast},<br />
%% {ip, {127, 0, 0, 1}},<br />
%% {hosts, ["icq.example.org", "sms.example.org"],<br />
%% [{password, "secret"}]<br />
%% }<br />
%% ]},</p>
<p> %%<br />
%% ejabberd_stun: Handles STUN Binding requests<br />
%%<br />
%%{{3478, udp}, ejabberd_stun, []},</p>
<p> {5280, ejabberd_http, [<br />
%%{request_handlers,<br />
%% [<br />
%% {["pub", "archive"], mod_http_fileserver}<br />
%% ]},<br />
captcha,<br />
http_bind,<br />
http_poll,<br />
web_admin<br />
]}</p>
<p> ]}.</p>
<p>%%<br />
%% s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections.<br />
%% Allowed values are: true or false.<br />
%% You must specify a certificate file.<br />
%%<br />
%%{s2s_use_starttls, true}.</p>
<p>%%<br />
%% s2s_certfile: Specify a certificate file.<br />
%%<br />
%%{s2s_certfile, "/path/to/ssl.pem"}.</p>
<p>%%<br />
%% domain_certfile: Specify a different certificate for each served hostname.<br />
%%<br />
%%{domain_certfile, "example.org", "/path/to/example_org.pem"}.<br />
%%{domain_certfile, "example.com", "/path/to/example_com.pem"}.</p>
<p>%%<br />
%% S2S whitelist or blacklist<br />
%%<br />
%% Default s2s policy for undefined hosts.<br />
%%<br />
%%{s2s_default_policy, allow}.</p>
<p>%%<br />
%% Allow or deny communication with specific servers.<br />
%%<br />
%%{{s2s_host, "goodhost.org"}, allow}.<br />
%%{{s2s_host, "badhost.org"}, deny}.</p>
<p>%%<br />
%% Outgoing S2S options<br />
%%<br />
%% Preferred address families (which to try first) and connect timeout<br />
%% in milliseconds.<br />
%%<br />
%%{outgoing_s2s_options, [ipv4, ipv6], 10000}.</p>
<p>%%%. ==============<br />
%%%' AUTHENTICATION</p>
<p>%%<br />
%% auth_method: Method used to authenticate the users.<br />
%% The default method is the internal.<br />
%% If you want to use a different method,<br />
%% comment this line and enable the correct ones.<br />
%%<br />
%%{auth_method, internal}.</p>
<p>%%<br />
%% Authentication using external script<br />
%% Make sure the script is executable by ejabberd.<br />
%%<br />
%%{auth_method, external}.<br />
%%{extauth_program, "/path/to/authentication/script"}.</p>
<p>%%<br />
%% Authentication using ODBC<br />
%% Remember to setup a database in the next section.<br />
%%<br />
{auth_method, odbc}.</p>
<p>%%<br />
%% Authentication using PAM<br />
%%<br />
%%{auth_method, pam}.<br />
%%{pam_service, "pamservicename"}.</p>
<p>%%<br />
%% Authentication using LDAP<br />
%%<br />
%%{auth_method, ldap}.<br />
%%<br />
%% List of LDAP servers:<br />
%%{ldap_servers, ["localhost"]}.<br />
%%<br />
%% Encryption of connection to LDAP servers:<br />
%%{ldap_encrypt, none}.<br />
%%{ldap_encrypt, tls}.<br />
%%<br />
%% Port to connect to on LDAP servers:<br />
%%{ldap_port, 389}.<br />
%%{ldap_port, 636}.<br />
%%<br />
%% LDAP manager:<br />
%%{ldap_rootdn, "dc=example,dc=com"}.<br />
%%<br />
%% Password of LDAP manager:<br />
%%{ldap_password, "******"}.<br />
%%<br />
%% Search base of LDAP directory:<br />
%%{ldap_base, "dc=example,dc=com"}.<br />
%%<br />
%% LDAP attribute that holds user ID:<br />
%%{ldap_uids, [{"mail", "%u@mail.example.org"}]}.<br />
%%<br />
%% LDAP filter:<br />
%%{ldap_filter, "(objectClass=shadowAccount)"}.</p>
<p>%%<br />
%% Anonymous login support:<br />
%% auth_method: anonymous<br />
%% anonymous_protocol: sasl_anon | login_anon | both<br />
%% allow_multiple_connections: true | false<br />
%%<br />
%%{host_config, "public.example.org", [{auth_method, anonymous},<br />
%% {allow_multiple_connections, false},<br />
%% {anonymous_protocol, sasl_anon}]}.<br />
%%<br />
%% To use both anonymous and internal authentication:<br />
%%<br />
%%{host_config, "public.example.org", [{auth_method, [internal, anonymous]}]}.<br />
%%{host_config, "realtime.sgiggle.com", [{auth_method, [internal,anonymous]}, {anonymous_protocol, sasl_anon}]}.</p>
<p>%%%. ==============<br />
%%%' DATABASE SETUP</p>
<p>%% ejabberd by default uses the internal Mnesia database,<br />
%% so you do not necessarily need this section.<br />
%% This section provides configuration examples in case<br />
%% you want to use other database backends.<br />
%% Please consult the ejabberd Guide for details on database creation.</p>
<p>%%<br />
%% MySQL server:<br />
%%<br />
{odbc_server, {mysql, server, 3306, db, user, password}}.<br />
%%<br />
%% If you want to specify the port:<br />
%%{odbc_server, {mysql, "server", 1234, "database", "username", "password"}}.</p>
<p>%%<br />
%% PostgreSQL server:<br />
%%<br />
%%{odbc_server, {pgsql, "server", "database", "username", "password"}}.<br />
%%<br />
%% If you want to specify the port:<br />
%%{odbc_server, {pgsql, "server", 1234, "database", "username", "password"}}.<br />
%%<br />
%% If you use PostgreSQL, have a large database, and need a<br />
%% faster but inexact replacement for "select count(*) from users"<br />
%%<br />
%%{pgsql_users_number_estimate, true}.</p>
<p>%%<br />
%% ODBC compatible or MSSQL server:<br />
%%<br />
%%{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}.</p>
<p>%%<br />
%% Number of connections to open to the database for each virtual host<br />
%%<br />
%%{odbc_pool_size, 10}.</p>
<p>%%<br />
%% Interval to make a dummy SQL request to keep the connections to the<br />
%% database alive. Specify in seconds: for example 28800 means 8 hours<br />
%%<br />
%%{odbc_keepalive_interval, undefined}.</p>
<p>%%%. ===============<br />
%%%' TRAFFIC SHAPERS</p>
<p>%%<br />
%% The "normal" shaper limits traffic speed to 1000 B/s<br />
%%<br />
{shaper, normal, {maxrate, 50000000}}.</p>
<p>%%<br />
%% The "fast" shaper limits traffic speed to 50000 B/s<br />
%%<br />
{shaper, fast, {maxrate, 50000000}}.</p>
<p>%%<br />
%% This option specifies the maximum number of elements in the queue<br />
%% of the FSM. Refer to the documentation for details.<br />
%%<br />
{max_fsm_queue, 10000}.</p>
<p>%%%. ====================<br />
%%%' ACCESS CONTROL LISTS</p>
<p>%%<br />
%% The 'admin' ACL grants administrative privileges to XMPP accounts.<br />
%% You can put here as many accounts as you want.<br />
%%<br />
%%{acl, admin, {user, "aleksey", "localhost"}}.<br />
%%{acl, admin, {user, "ermine", "example.org"}}.</p>
<p>%%<br />
%% Blocked users<br />
%%<br />
%%{acl, blocked, {user, "baduser", "example.org"}}.<br />
%%{acl, blocked, {user, "test"}}.</p>
<p>%%<br />
%% Local users: don't modify this line.<br />
%%<br />
{acl, local, {user_regexp, ""}}.</p>
<p>%%<br />
%% More examples of ACLs<br />
%%<br />
%%{acl, jabberorg, {server, "jabber.org"}}.<br />
%%{acl, aleksey, {user, "aleksey", "jabber.ru"}}.<br />
%%{acl, test, {user_regexp, "^test"}}.<br />
%%{acl, test, {user_glob, "test*"}}.</p>
<p>%%<br />
%% Define specific ACLs in a virtual host.<br />
%%<br />
{host_config, "realtime.sgiggle.com",<br />
[<br />
{acl, admin, {user, "admin", "realtime.sgiggle.com"}}<br />
]<br />
}.</p>
<p>%%%. ============<br />
%%%' ACCESS RULES</p>
<p>%% Maximum number of simultaneous sessions allowed for a single user:<br />
{access, max_user_sessions, [{10, all}]}.</p>
<p>%% Maximum number of offline messages that users can have:<br />
{access, max_user_offline_messages, [{5000, admin}, {100, all}]}.</p>
<p>%% This rule allows access only for local users:<br />
{access, local, [{allow, local}]}.</p>
<p>%% Only non-blocked users can use c2s connections:<br />
{access, c2s, [{deny, blocked},<br />
{allow, all}]}.</p>
<p>%% For C2S connections, all users except admins use the "normal" shaper<br />
{access, c2s_shaper, [{none, admin},<br />
{normal, all}]}.</p>
<p>%% All S2S connections use the "fast" shaper<br />
{access, s2s_shaper, [{fast, all}]}.</p>
<p>%% Only admins can send announcement messages:<br />
{access, announce, [{allow, admin}]}.</p>
<p>%% Only admins can use the configuration interface:<br />
{access, configure, [{allow, admin}]}.</p>
<p>%% Admins of this server are also admins of the MUC service:<br />
{access, muc_admin, [{allow, admin}]}.</p>
<p>%% Only accounts of the local ejabberd server can create rooms:<br />
{access, muc_create, [{allow, local}]}.</p>
<p>%% All users are allowed to use the MUC service:<br />
{access, muc, [{allow, all}]}.</p>
<p>%% Only accounts on the local ejabberd server can create Pubsub nodes:<br />
{access, pubsub_createnode, [{allow, local}]}.</p>
<p>%% In-band registration allows registration of any possible username.<br />
%% To disable in-band registration, replace 'allow' with 'deny'.<br />
{access, register, [{allow, all}]}.</p>
<p>%% By default the frequency of account registrations from the same IP<br />
%% is limited to 1 account every 10 minutes. To disable, specify: infinity<br />
%%{registration_timeout, 600}.</p>
<p>%%<br />
%% Define specific Access Rules in a virtual host.<br />
%%<br />
%%{host_config, "localhost",<br />
%% [<br />
%% {access, c2s, [{allow, admin}, {deny, all}]},<br />
%% {access, register, [{deny, all}]}<br />
%% ]<br />
%%}.</p>
<p>%%%. ================<br />
%%%' DEFAULT LANGUAGE</p>
<p>%%<br />
%% language: Default language used for server messages.<br />
%%<br />
{language, "en"}.</p>
<p>%%<br />
%% Set a different default language in a virtual host.<br />
%%<br />
%%{host_config, "localhost",<br />
%% [{language, "ru"}]<br />
%%}.</p>
<p>%%%. =======<br />
%%%' CAPTCHA</p>
<p>%%<br />
%% Full path to a script that generates the image.<br />
%%<br />
%%{captcha_cmd, "/lib/ejabberd/priv/bin/captcha.sh"}.</p>
<p>%%<br />
%% Host part of the URL sent to the user.<br />
%%<br />
%%{captcha_host, "example.org:5280"}.</p>
<p>%%%. =======<br />
%%%' MODULES</p>
<p>%%<br />
%% Modules enabled in all ejabberd virtual hosts.<br />
%%<br />
{modules,<br />
[<br />
{mod_adhoc, []},<br />
{mod_announce, [{access, announce}]}, % recommends mod_adhoc<br />
{mod_caps, []},<br />
{mod_configure,[]}, % requires mod_adhoc<br />
{mod_disco, []},<br />
%%{mod_echo, [{host, "echo.localhost"}]},<br />
{mod_irc, []},<br />
{mod_http_bind, []},<br />
%%{mod_http_fileserver, [<br />
%% {docroot, "/var/www"},<br />
%% {accesslog, "/var/log/ejabberd/access.log"}<br />
%% ]},<br />
{mod_last, []},<br />
{mod_muc, [<br />
%%{host, "conference.@HOST@"},<br />
{access, muc},<br />
{access_create, muc_create},<br />
{access_persistent, muc_create},<br />
{access_admin, muc_admin}<br />
]},<br />
%%{mod_muc_log,[]},<br />
{mod_offline, [{access_max_user_messages, max_user_offline_messages}]},<br />
{mod_ping, [{send_pings, true}, {ping_interval, 900}, {timeout_action, kill}]},<br />
{mod_privacy, []},<br />
{mod_private, []},<br />
%%{mod_proxy65,[]},<br />
{mod_pubsub, [<br />
{access_createnode, pubsub_createnode},<br />
{ignore_pep_from_offline, true}, % reduces resource comsumption, but XEP incompliant<br />
%%{ignore_pep_from_offline, false}, % XEP compliant, but increases resource comsumption<br />
{last_item_cache, false},<br />
{plugins, ["flat", "hometree", "pep"]} % pep requires mod_caps<br />
]},<br />
{mod_register, [<br />
%%<br />
%% After successful registration, the user receives<br />
%% a message with this subject and body.<br />
%%<br />
{welcome_message, {"Welcome!",<br />
"Hi.\nWelcome to this XMPP server."}},</p>
<p> %%<br />
%% When a user registers, send a notification to<br />
%% these XMPP accounts.<br />
%%<br />
%%{registration_watchers, ["admin1@example.org"]},</p>
<p> {access, register}<br />
]},<br />
{mod_roster, []},<br />
%%{mod_service_log,[]},<br />
{mod_shared_roster,[]},<br />
{mod_stats, []},<br />
{mod_time, []},<br />
{mod_vcard, []},<br />
{mod_version, []}<br />
]}.</p>
<p>%%<br />
%% Enable modules with custom options in a specific virtual host<br />
%%<br />
%%{host_config, "localhost",<br />
%% [{{add, modules},<br />
%% [<br />
%% {mod_echo, [{host, "mirror.localhost"}]}<br />
%% ]<br />
%% }<br />
%% ]}.</p>
<p>{registration_timeout, infinity}.</p>
<p>%%%.<br />
%%%'</p>
<p>%%% $Id$</p>
<p>%%% Local Variables:<br />
%%% mode: erlang<br />
%%% End:<br />
%%% vim: set filetype=erlang tabstop=8 foldmarker=%%%',%%%. foldmethod=marker:</p>
<p>ejabberdctl.cfg</p>
<p>#<br />
# In this file you can configure options that are passed by ejabberdctl<br />
# to the erlang runtime system when starting ejabberd<br />
#</p>
<p>#' POLL: Kernel polling ([true|false])<br />
#<br />
# The kernel polling option requires support in the kernel.<br />
# Additionally, you need to enable this feature while compiling Erlang.<br />
#<br />
# Default: true<br />
#<br />
POLL=true</p>
<p>#.<br />
#' SMP: SMP support ([enable|auto|disable])<br />
#<br />
# Explanation in Erlang/OTP documentation:<br />
# enable: starts the Erlang runtime system with SMP support enabled.<br />
# This may fail if no runtime system with SMP support is available.<br />
# auto: starts the Erlang runtime system with SMP support enabled if it<br />
# is available and more than one logical processor are detected.<br />
# disable: starts a runtime system without SMP support.<br />
#<br />
# Default: auto<br />
#<br />
SMP=enable</p>
<p>#.<br />
#' ERL_MAX_PORTS: Maximum number of simultaneously open Erlang ports<br />
#<br />
# ejabberd consumes two or three ports for every connection, either<br />
# from a client or from another Jabber server. So take this into<br />
# account when setting this limit.<br />
#<br />
# Default: 32000<br />
# Maximum: 268435456<br />
#<br />
ERL_MAX_PORTS=5000000</p>
<p>#.<br />
#' FIREWALL_WINDOW: Range of allowed ports to pass through a firewall<br />
#<br />
# If Ejabberd is configured to run in cluster, and a firewall is blocking ports,<br />
# it's possible to make Erlang use a defined range of port (instead of dynamic<br />
# ports) for node communication.<br />
#<br />
# Default: not defined<br />
# Example: 4200-4210<br />
#<br />
#FIREWALL_WINDOW=9000-9100</p>
<p>#.<br />
#' ERL_PROCESSES: Maximum number of Erlang processes<br />
#<br />
# Erlang consumes a lot of lightweight processes. If there is a lot of activity<br />
# on ejabberd so that the maximum number of processes is reached, people will<br />
# experiment greater latency times. As these processes are implemented in<br />
# Erlang, and therefore not related to the operating system processes, you do<br />
# not have to worry about allowing a huge number of them.<br />
#<br />
# Default: 250000<br />
# Maximum: 268435456<br />
#<br />
ERL_PROCESSES=5000000</p>
<p>#.<br />
#' ERL_MAX_ETS_TABLES: Maximum number of ETS and Mnesia tables<br />
#<br />
# The number of concurrent ETS and Mnesia tables is limited. When the limit is<br />
# reached, errors will appear in the logs:<br />
# ** Too many db tables **<br />
# You can safely increase this limit when starting ejabberd. It impacts memory<br />
# consumption but the difference will be quite small.<br />
#<br />
# Default: 1400<br />
#<br />
ERL_MAX_ETS_TABLES=40000</p>
<p>#.<br />
#' ERL_OPTIONS: Additional Erlang options<br />
#<br />
# The next variable allows to specify additional options passed to erlang while<br />
# starting ejabberd. Some useful options are -noshell, -detached, -heart. When<br />
# ejabberd is started from an init.d script options -noshell and -detached are<br />
# added implicitly. See erl(1) for more info.<br />
#<br />
# It might be useful to add "-pa /usr/local/lib/ejabberd/ebin" if you<br />
# want to add local modules in this path.<br />
#<br />
# Default: ""<br />
#<br />
#ERL_OPTIONS=""</p>
<p>#.<br />
#' ERLANG_NODE: Erlang node name<br />
#<br />
# The next variable allows to explicitly specify erlang node for ejabberd<br />
# It can be given in different formats:<br />
# ERLANG_NODE=ejabberd<br />
# Lets erlang add hostname to the node (ejabberd uses short name in this case)<br />
# ERLANG_NODE=ejabberd@hostname<br />
# Erlang uses node name as is (so make sure that hostname is a real<br />
# machine hostname or you'll not be able to control ejabberd)<br />
# ERLANG_NODE=ejabberd@hostname.domainname<br />
# The same as previous, but erlang will use long hostname<br />
# (see erl (1) manual for details)<br />
#<br />
# Default: ejabberd<br />
#<br />
ERLANG_NODE=</p>
<p>#.<br />
#' EJABBERD_PID_PATH: ejabberd PID file<br />
#<br />
# Indicate the full path to the ejabberd Process identifier (PID) file.<br />
# If this variable is defined, ejabberd writes the PID file when starts,<br />
# and deletes it when stops.<br />
# Remember to create the directory and grant write permission to ejabberd.<br />
#<br />
# Default: don't write PID file<br />
#<br />
#EJABBERD_PID_PATH=/var/run/ejabberd/ejabberd.pid</p>
<p>#.<br />
#'<br />
# vim: foldmarker=#',#. foldmethod=marker:</p>
Tue, 28 Sep 2010 08:14:42 +0000scalemecomment 56666 at https://www.ejabberd.imYou are seeing those errors
https://www.ejabberd.im/node/4316#comment-56649
<p>You are seeing those errors because a mnesia creates an ets table per transaction. BTW, I don't know if odbc driver uses mnesia or not, and I *highly* recommend to use mysql driver.<br />
Also, could you please show your config?</p>
Thu, 23 Sep 2010 06:11:44 +0000zinidcomment 56649 at https://www.ejabberd.imWe are using mysql through
https://www.ejabberd.im/node/4316#comment-56647
<p>We are using mysql through the odbc driver. I'm not sure what ejabberd writes to mnesia when using odbc drivers.</p>
<p>I've increased it to 200000 and I'm still seeing errors.</p>
<p>Stuck at 250K connections</p>
Wed, 22 Sep 2010 17:59:51 +0000scalemecomment 56647 at https://www.ejabberd.imRe: ejabberd 2.1.4 crashes during stress test
https://www.ejabberd.im/node/4316#comment-56635
<p>1) It seems like even 60000 is not enough, try to increase.<br />
2) You should use SQL on the heavily loaded server (to avoid those mnesia warnings).</p>
Tue, 21 Sep 2010 11:28:16 +0000zinidcomment 56635 at https://www.ejabberd.im