【问题标题】:Ejabberd limits online users count at 64,464. Descriptors already increasedEjabberd 将在线用户数限制为 64,464。描述符已经增加
【发布时间】:2015-07-05 12:10:06
【问题描述】:

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

我猜一个 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"

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

指针将不胜感激。

谢谢!

【问题讨论】:

  • 检查您的 /var/log/syslog 信息。
  • 这就是我系统中的全部内容。 [root@Test ~]# cd /var/log/syslog -bash: cd: /var/log/syslog: 没有这样的文件或目录 [root@Test ~]# find / -name syslog /etc/logrotate.d/系统日志
  • tail -f /var/log/syslog
  • 该位置不存在此类文件。我必须提到,我使用的是 RHEL 6。 [root@Test bin]# tail -f /var/log/syslog tail: 无法打开 `/var/log/syslog' 进行阅读:没有这样的文件或目录 好吧,我猜需要在某处查看 /var/log/messages。
  • 检查你的操作系统的 /var/log 目录并理解它。检查操作系统的 sysctl.conf 文件并控制操作系统的限制。

标签: linux process erlang ejabberd tsung


【解决方案1】:

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

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

例如:erl +Q 704500

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

erlang:system_info(port_limit)

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 2018-02-24
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多