2012-01-21 2 views
0

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

Так я приспособил обычные параметры и ограничения:

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

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

Это на 2.6.32-5-amd64 ядро ​​работает внутри VirtualBox наверх Windows XP на ICORE 7.

EDIT: обидное. Я связываюсь с некоторым кодом, который делает setrlimit этого значения более низким значением ... поэтому я сам снижаю лимит на процесс. Обнаружил это случайно - подсказка может быть полезной для других.

ответ

1

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

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

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

Смежные вопросы