Erlang:我如何允许超过1024连接Mochiweb?
问题描述:
我试图增加文件描述符的GNU/Linux的最大限制:Erlang:我如何允许超过1024连接Mochiweb?
$ ulimit -n 999999
和我开始了服务器-env ERL_MAX_PORTS 4096
。
每当我使用测试util,在1012-1024打开连接后,我收到消息“Closed:socket_closed_remotely”和“Closed:emfile”。
答
我发现我的错误。 我为另一个shell调用了ulimit
。
答
尝试调整max
选项,该选项从您的APPLICATION_web:start/1
传递到mochiweb_socket_server:start/1
,其中APPLICATION
是您的应用程序的名称;例如您的应用程序调用helloworld
,那么你会发现功能start/1
文件./src/helloworld_web.erl
它看起来像:
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]).
希望有所帮助。
+0
谢谢。但是,我已经有了这个1000000选项“最大”。 – HammerSpb 2011-01-24 09:50:10
`emfile`应该会引起你的结论。例如,请查看“man 2 open”并搜索“EMFILE”。 – 2011-01-24 12:03:21