【问题标题】:Erlang: How do I allow more than 1024 connection with Mochiweb?Erlang:如何允许超过 1024 个与 Mochiweb 的连接?
【发布时间】: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


    【解决方案1】:

    我发现了我的错误。 我打电话给ulimit 以获得另一个shell。

    【讨论】:

    • emfile 应该提示您得出这个结论。例如,请参阅 man 2 open 并搜索 EMFILE
    【解决方案2】:

    尝试调整从APPLICATION_web:start/1 传递给mochiweb_socket_server:start/1max 选项,其中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]).
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 2018-02-12
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2019-02-26
      相关资源
      最近更新 更多