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

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

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

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

【问题讨论】:

  • ulimit -n。以 MacOS 为例请参考this

标签: macos sockets erlang connection


【解决方案1】:

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

  1. 操作系统最大打开文件限制,你可以检查两个如何调整它here
  2. 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"。确保它与您在操作系统限制中设置的相同。
猜你喜欢
  • 1970-01-01
  • 2016-02-04
  • 2013-12-30
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
相关资源
最近更新 更多