Слишком много открытых файлов (Mono .NET в Ubuntu)

Я знаю, что есть много таких вопросов по SO, но я не вижу ничего, что соответствовало бы моей конкретной ситуации.

Я запускаю консольное приложение .NET через Mono в Ubuntu. Приложение работает как сервер и принимает соединения через TcpListener (TcpListener.AcceptTcpClient ()). У меня проблема в том, что через некоторое время программа начинает выдавать исключения «Слишком много открытых файлов».

Я увеличил максимальное количество файлов в Ubuntu в двух известных мне местах:

  • /etc/security/limits.conf

root soft nofile 240000

root hard nofile 320000

(Рассматриваемый процесс запускается от имени пользователя root)

  • /etc/sysctl.conf

fs.file-max = 2000000

Оба имеют значение ~ 200000.

Если проверить количество описаний открытых файлов в системе, оно будет всего 996, хотя система выдает ошибки.

У меня одна и та же программа работает на нескольких серверах Windows с большим количеством подключений, и у них никогда не возникает этой проблемы.

Есть идеи, что могло вызвать эту ошибку?

6
задан antfx 24 January 2012 в 15:50
поделиться