Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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