gpt4 book ai didi

Erlang 的最大同时打开端口数?

转载 作者:可可西里 更新时间:2023-11-01 02:30:40 32 4
gpt4 key购买 nike

erlang TCP/IP 库有一些限制吗?我进行了一些搜索,但找不到任何明确的答案。

我已将 ERL_MAX_PORTS 环境变量设置为 12000,并将 Yaws 配置为使用无限连接。

我编写了一个连接到我为 Yaws 编写的 appmod 的简单客户端应用程序,并且正在通过同时启动 X 个客户端来测试同时连接的数量。

我发现当我达到大约 100 个客户端时,Yaws 服务器停止接受更多的 TCP 连接并且客户端出错

Error in process  with exit value: {{badmatch,{error,socket_closed_remotely}}

我知道同时打开的连接数肯定有限制,但 100 似乎真的很低。我查看了所有雅司病文档并取消了对连接的任何限制。

这是在运行 Snow Leopard 的 2.16Ghz Intel Core 2 Duo iMac 上。

在 Vista 机器上的快速测试表明我在大约 300 个连接时遇到了同样的问题。

我的测试不合理吗? IE。同时打开 100+ 连接来测试 Yaws 的并发是不是很傻?

谢谢。

最佳答案

看来您遇到了系统限制,请尝试使用增加打开文件的最大数量

$ ulimit -n 500

Python on Snow Leopard, how to open >255 sockets?

Erlang 本身有 1024 的限制:

来自 http://www.erlang.org/doc/man/erlang.html

最大可同时打开的端口数默认为1024,但可以通过环境变量ERL_MAX_PORTS配置。

编辑:

系统调用listen()有一个参数 backlog 决定有多少请求可以排队,请检查建立连接请求之间的延迟是否有帮助。这可能是您的问题。

关于Erlang 的最大同时打开端口数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126630/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com