Решено: *CFile: Error when opening file (/path/file): Too many open files (как обойти?)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4

Решено: *CFile: Error when opening file (/path/file): Too many open files

Сообщение Doka »

программа, в которой это возникает - aMule:

Код: Выделить всё

2007-10-30 10:23:28: CFile: Error when opening file (/hdd/750/emule/_temp/089.part.met): Too many open files
2007-10-30 10:23:28: ERROR while saving partfile: Failed to open part.met file (089.part.met ==> Mаdоnnа - Discography (15 Albums, Mp3).zip)
2007-10-30 10:23:28: CFile: Error when opening file (/hdd/750/emule/_temp/685.part.met): Too many open files
2007-10-30 10:23:28: FileIO: Error on file copy. Can't open original file: /hdd/750/emule/_temp/685.part.met
2007-10-30 10:23:28: CFile: Error when opening file (/hdd/750/emule/_temp/685.part.met): Too many open files
2007-10-30 10:23:28: ERROR while saving partfile: Failed to open part.met file (685.part.met ==> Be.Cool.avi)
2007-10-30 10:35:34: Credits: Error while creating signature: OS_Rng: open /dev/urandom operation failed with error 24
2007-10-30 10:35:37: Credits: Error while creating signature: OS_Rng: open /dev/urandom operation failed with error 24
2007-10-30 10:35:37: Credits: Error while creating signature: OS_Rng: open /dev/urandom operation failed with error 24
2007-10-30 10:35:37: Credits: Error while creating signature: OS_Rng: open /dev/urandom operation failed with error 24
2007-10-30 10:35:37: Credits: Error while creating signature: OS_Rng: open /dev/urandom operation failed with error 24


где прошито ограничение на количество одновременно открытых файлов (система, приложение) и как его можно изменить?
Never stop thinking..................................................................
Спасибо сказали:
Аватара пользователя
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4

Re: Решено: *CFile: Error when opening file (/path/file): Too many open files

Сообщение Doka »

гуглением вышел на эту ссылку
в качестве решения даётся совет: "check the ulimit command"

у меня ulimit возвращает:

Код: Выделить всё

[doka@centos ~]$ ulimit
unlimited
[doka@centos ~]$

т.е. вроде как ограничений нет - однако в чём тогда может быть проблема??
Never stop thinking..................................................................
Спасибо сказали:
Аватара пользователя
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4

Re: Решено: *CFile: Error when opening file (/path/file): Too many open files

Сообщение Doka »

после manочтения вроде стало понятно. надо увеличить число открытых файлов (open files) опцией (-n)
но, похоже для каждого пользователя установки играничений свои: из под обычного пользователя не устанавливается, а из под рута устанавливается, но опять же действует только на переменные окружения рута(((

Код: Выделить всё

[doka@centos ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16383
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16383
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[doka@centos ~]$ ulimit -n 4096
bash: ulimit: open files: cannot modify limit: Operation not permitted
[doka@centos ~]$


как быть?.. мне аМуле надо под обычным пользователем пускать
Never stop thinking..................................................................
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Решено: *CFile: Error when opening file (/path/file): Too many open files

Сообщение Goodvin »

Спасибо сказали:
Аватара пользователя
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4

Re: Решено: *CFile: Error when opening file (/path/file): Too many open files

Сообщение Doka »



как-то не нашёл я по ссылкам решения. да. дескать пишут ребята что есть понятия soft limit и hard limit - а где их править не очень понятно((


добавил я в /etc/profile нижнюю строчку:

Код: Выделить всё

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
ulimit -n 16383


после перезагрузки как только захожу на машину мне выдается:


Код: Выделить всё

[doka@work ~]$ ssh centos
doka@centos's password:
Last login: Wed Oct 31 14:50:39 2007 from x
-bash: ulimit: open files: cannot modify limit: Operation not permitted
[doka@centos ~]$ ulimit -n
1024
[doka@centos ~]$



PS: а limits.conf я у себя вобще не нашёл (((
Never stop thinking..................................................................
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Решено: *CFile: Error when opening file (/path/file): Too many open files

Сообщение Goodvin »

Странно, я через 2 минуты этим же путём (с промежуточной остановкой в гугле на 10 секунд) пришел вот к этому:
1.
http://www.infin.ru/ftp/distrib/linux/wine...oc/Etersoft.htm

Код:

Лимит на количество открытых файлов Ещё одна сторона совместной работы: одновременное использование большего количества ресурсов, что может приводить к превышению стандартных лимитов, используемых по умолчанию в различных Unix-системах. Лимиты могут определяться как в момент компиляции ядра, так и настраиваться в любой момент в процессе работы. В контексте использования WINE наиболее актуален лимит на открытые файлы. Если в приложении не открываются большие файловые базы или невозможно работать более чем 3-м пользователям одновременно, это может означать, что превышен лимит на открытые файлы. Лимит на открытые файлы в Linux-системах двухуровневый: с одной стороны, имеется лимит ядра на общее число всех открытых файлов, с другой стороны, для каждой командной оболочки пользователя также может быть выставлен лимит на число открытых файлов. В Linux-системах узнать текущее значение лимита ядра можно через виртуальную файловую систему /proc: $ cat /proc/sys/fs/file-max 25196 Пример 34. Лимит на открытые файлы Разово изменить это значение можно посредством той же proc, для этого нужно просто записать новое значение в этот файл (потребуются права суперпользователя): # echo "104854" > /proc/sys/fs/file-max # cat /proc/sys/fs/file-max 104854 Пример 35. Изменение лимита на открытые файлы Чтобы настройка лимитов сохранялась между перезагрузками, необходимо внести нужные значения в файл /etc/sysctl.conf: # Maximum number of open files permitted fs.file-max = 104854 Пример 36. Настройка sysctl.conf Лимит по количеству открытых файлов для командной оболочки пользователя можно контролировать при помощи подсистемы авторизации PAM. Для этого в конфигурационном файле /etc/security/limits.conf выставляются необходимые значения: * soft nofile 5000 * hard nofile 5000 Пример 37. Указание лимитов в /etc/security/limits.conf Кроме этого, чтобы лимит применялся при регистрации пользователей в системе в файле /etc/pam.d/system-auth должна быть строка: session required /lib/security/pam_limits.so Пример 38. После повторного входа в систему выставленное вами значение лимита должно быть отображено в выводе команды ulimit -n.


2.
http://www.opennet.ru/openforum/vsluhforumID1/39678.html
Спасибо сказали:
Аватара пользователя
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4

Re: Решено: *CFile: Error when opening file (/path/file): Too many open files

Сообщение Doka »

спасибо большое.
в моей конфигурации помогло добавление '* hard nofile 16383' в /etc/security/limits.conf и последующая перезагрузка
Never stop thinking..................................................................
Спасибо сказали: