Существует ли максимум открытых файлов на процесс в Linux?

Мой вопрос довольно прост и фактически указан в заголовке. Одно из моих приложений выдает мне ошибки, связанные с "слишком большим количеством открытых файлов", даже если для пользователя, с которым запускается приложение, ограничение превышает значение по умолчанию, равное 1024 (lsof -u $USER сообщает о 3000 открытых fds).

Поскольку я не могу себе представить, почему это происходит, я думаю, что может быть максимум на процесс.

Любая идея очень ценится!

Изменить: некоторые значения, которые могут помочь...

root@Debian-60-squeeze-64-minimal ~ # ulimit -n
100000

root@Debian-60-squeeze-64-minimal ~ # tail -n 4 /etc/security/limits.conf 
myapp  soft nofile 100000
myapp  hard nofile 1000000
root soft nofile 100000
root hard nofile 1000000

root@Debian-60-squeeze-64-minimal ~ # lsof -n -u myapp | wc -l
2708

2 ответа

Вы можете найти предел для процесса с pid в /proc/<pid>/limits и есть запись Max open files,

Да, ulimit средство ограничивает количество открытых файлов и многие другие вещи, такие как размер стека, размер дампа ядра и т. д.

Вы можете найти некоторые ограничения для каждого процесса в /etc/systemd/system.conf

Другие вопросы по тегам