Erlang 增加打开的套接字数量,MacOS 和 CentOs

Posted

技术标签:

【中文标题】Erlang 增加打开的套接字数量,MacOS 和 CentOs【英文标题】:Erlang raise number of opened sockets, MacOS and CentOs 【发布时间】:2015-12-01 07:51:25 【问题描述】:

我正在尝试打开与我的 Erlang 服务器的连接(sockets);大约 100 个并行连接一切正常,但是当我想要超过 100 个时,我得到 error, closed。

可能与操作系统文件描述符限制有关?如果是的话,你们能给我一个解决方案吗?我使用 MacOS 和 CentOS。

我应该在 vm.args 文件中为 Erlang Vm 提供一些参数吗?

【问题讨论】:

ulimit -n。以 MacOS 为例请参考this 【参考方案1】:

erlang 中的打开套接字限制依赖于两件事:

    操作系统最大打开文件限制,你可以检查两个如何调整它here Erlang VM +Q 最大开放端口标志,查看here

【讨论】:

你是对的,这些步骤是必需的,但我还需要将参数传递给监听调用。那是 backlog, SomeNumber。积压的默认值为 5。通过这 3 个步骤,我完成了我想要的,感谢您的帮助。 在 ssl:connect 上我仍然没有为超过 100 个连接工作,我收到了 econnreset 应用所有这些更改有点棘手。我不是 MacOS 高级用户,所以我可以建议如何在 linux 下检查东西: ps aux | grep beam 的帮助下找到 erlang vm 进程 ID,然后找到 cat /proc/PID/limits | grep "Max open files"。确保它与您在操作系统限制中设置的相同。

以上是关于Erlang 增加打开的套接字数量,MacOS 和 CentOs的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB erlang 连接结束

用 Erlang 与其他人制作的套接字服务器

Java erlang 套接字通信

为啥套接字关闭 Erlang

erlang 笔记(06/03/02)

将erlang套接字存储到数据库