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的主要内容,如果未能解决你的问题,请参考以下文章