【发布时间】:2011-01-24 19:09:37
【问题描述】:
我试图在 GNU/Linux 上增加文件描述符的最大限制:
$ ulimit -n 999999
我正在使用-env ERL_MAX_PORTS 4096 启动服务器。
每当我使用测试工具时,在 1012-1024 打开连接后,我都会收到消息“已关闭:socket_closed_remotely”和“已关闭:emfile”。
【问题讨论】:
标签: erlang connection limit mochiweb
我试图在 GNU/Linux 上增加文件描述符的最大限制:
$ ulimit -n 999999
我正在使用-env ERL_MAX_PORTS 4096 启动服务器。
每当我使用测试工具时,在 1012-1024 打开连接后,我都会收到消息“已关闭:socket_closed_remotely”和“已关闭:emfile”。
【问题讨论】:
标签: erlang connection limit mochiweb
我发现了我的错误。
我打电话给ulimit 以获得另一个shell。
【讨论】:
emfile 应该提示您得出这个结论。例如,请参阅 man 2 open 并搜索 EMFILE。
尝试调整从APPLICATION_web:start/1 传递给mochiweb_socket_server:start/1 的max 选项,其中APPLICATION 是您的应用程序的名称;例如您的应用程序名为helloworld,那么您将在文件./src/helloworld_web.erl 中找到函数start/1,如下所示:
start(Options) ->
{DocRoot, Options1} = get_option(docroot, Options),
Loop = fun (Req) ->
?MODULE:loop(Req, DocRoot)
end,
mochiweb_http:start([{name, ?MODULE}, {loop, Loop} | Options1]).
修改对mochiweb_http:start/1的调用以包含选项max:
mochiweb_http:start([{max, 1000000}, {name, ?MODULE}, {loop, Loop} | Options1]).
希望对您有所帮助。
【讨论】: