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

我被限制在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"

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

指针将不胜感激.

谢谢!

最佳答案 除了os’端口限制,您还必须配置erlang端口限制.这可以通过使用Q参数(
further information)启动erlang vm来完成.

+Q Number|legacy
Sets the maximum number of simultaneously existing ports for this system if a Number is passed as value. Valid range for Number is [1024-134217727]

例如:erl Q 704500

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

erlang:system_info(port_limit)
点赞