I am trying to make load tests
Info:
erlang:memory().
[{total,98301360},
{processes,32880496},
{processes_used,32880344},
{system,65420864},
{atom,654217},
{atom_used,642591},
{binary,3597288},
{code,15522366},
{ets,4319080}]
erl flags:
POLL=true
SMP=auto
ERL_MAX_PORTS=144000
ERL_PROCESSES=900000
ERL_MAX_ETS_TABLES=20000
FIREWALL_WINDOW=""
ERLANG_NODE=ejabberd@localhost
ERLANG_MAXNUM_SIMUL_PORTS=300000
ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES $ERL_OPTIONS +Q $ERLANG_MAXNUM_SIMUL_PORTS"
User limit:
ulimit -n
200005
Sysctl options:
kernel.shmall = 4294967296
fs.file-max = 100000
net.ipv4.tcp_fin_timeout=30
net.core.somaxconn=1024
net.ipv4.ip_local_port_range = 500 61000
net.core.netdev_max_backlog=2000
net.ipv4.tcp_max_syn_backlog=2048
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
Max connected users I got:
ejabberd_sm:connected_users_number().
51875
After this ejabberd is stopped
in debug mode:
*** ERROR: Shell process terminated! (^G to start new job) ***
then ejabberdctl status tells nodedown
And no errors in log files
last lines "connection accepted"
How can I understand what is going wrong?
When I tested years ago,
When I tested years ago, there were two limits: one is the RAM, which you would notice as RAM usage would be high, it would start swapping and so consuming also CPU just to swap.
The other limit was some soft limit. For example, you got a few more than 50.000 users; where each one may need two opened files, that would mean 100.000 file descriptors, which is what you have in fs.file-max. That's just an idea.
Thank you for responce. I
Thank you for responce.
I tried increase fs.file-max = 1000000 to but still same issue.
Updade:
You are right, RAM is not enought
55513 users memory usage {total,1391764664}
{system,971299032}
Looks like 25kb need for 1 connection? (Only connection, without precense)
Hi, can you give me
Hi, can you give me information about how to do the load test? are you using some tools or what?