timerfd_create выдает ошибку "слишком много открытых файлов" - PullRequest
0 голосов
/ 21 января 2012

Мне нужно более 9990 файловых дескрипторов, созданных timerfd_create для приложения, основанного на событиях, и получаю EMFILE «слишком много открытых файлов».

Поэтому я адаптировал обычные параметры и ограничения:

sys.fs.file-max равно 1000000, поэтому ограничение всей системы не должно быть проблемой. sys.fs.nr_open равно 1048576, поэтому мое сравнительно большое значение file-max все равно следует считать действительным.Ограничения для каждого пользователя в limit.conf составляют 1000000, и это подтверждается ulimit -n , который показывает 1000000.

Чего мне не хватает ??

Это на2.6.32-5-ядро amd64, работающее внутри VirtualBox поверх Windows XP на iCore 7.

РЕДАКТИРОВАТЬ: Смущает.Я связываю с некоторым кодом, который устанавливает setrlimit этого значения на более низкое значение ... поэтому я сам снижаю ограничение на процесс.Обнаружил это случайно - пусть подсказка будет полезна другим.

1 Ответ

1 голос
/ 29 июля 2012

Если вы используете Linux, вы можете найти команду с именем ulimit. Вам может помочь несколько вариантов, например:

max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Таким образом, ulimit -u даст вам возможность запустить неограниченный процесс для конкретного пользователя

...