Ejabberd限制在线用户数为64,464。描述符已经增加

时间:2015-04-27 06:48:33

标签: linux process erlang ejabberd tsung

我被限制在Ejabberd节点上带来超过大约64000(64,464个精确)用户在线。我正在使用xml脚本(Tsung)将用户带到节点上。

我已经提高了描述符的限制:

Eshell V5.10.4  (abort with ^G)
1> os:cmd("ulimit -n").
"1045000\n"

这是一个奇怪的观察结果(期望可用的端口数作为整数值):

2> os:getenv("ERL_MAX_PORTS").
false

此外,ejabberdctl.cfg文件中的“ERL_MAX_PORTS”设置为704500。

ERL_MAX_PORTS=704500

我猜One Ejabberd节点对最大用户在线有一些限制。这可能是依赖于机器或其他东西的内存。

另外,这就是/etc/security/limits.conf的外观:

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50   
#ftp             hard    nproc           0
#@student        -       maxlogins       4
root             soft    nofile          1045000
root             hard    nofile          1045000

我可以尝试创建另一个在同一台Linux机器上运行的虚拟主机:

hosts:
  - "devlab"
  - "devlab2"

但我不确定这会有什么不同。

指针将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

除了os'端口限制外,您还必须配置erlang端口限制。这可以通过使用+ Q参数(further information)启动erlang vm来完成。

  

+ Q号码|遗产   如果将Number作为值传递,则设置此系统同时存在的最大端口数。 Number的有效范围是[1024-134217727]

例如:erl + Q 704500

您可以使用eshell中的以下命令检查erlang端口限制:

erlang:system_info(port_limit)