2011-01-24 1 views
2

Я попытался увеличить файловые дескрипторы максимальный предел на GNU/Linux:Erlang: Как разрешить более чем 1024 соединения с Mochiweb?

$ ulimit -n 999999 

и я начинаю сервера с -env ERL_MAX_PORTS 4096.

Всякий раз, когда я использую test util, после открытия 1012-1024 соединения я получаю сообщения «Закрыто: socket_closed_remotely» и «Закрыто: emfile».

ответ

3

Я нашел свою ошибку. Я позвонил ulimit для другой оболочки.

+1

'emfile' должен опрокинуть вас на этот вывод. См. 'Man 2 open' и, например, поиск' EMFILE'. –

1

Попробуйте настроить max опцию, которая передается mochiweb_socket_server:start/1 с вашего APPLICATION_web: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

Thank. Но у меня уже есть эта опция 1000000 для «max». – HammerSpb