LINUX.ORG.RU
ФорумAdmin

[limits] Too many open files


0

1

Иногда (после массового переподключения клиентов) на сервере(SLES10 x64) с базой (Oracle) наблюдаю в логах ошибку «Too many open files» и из-за этого не все переподключения проходят успешно.

>ulimit -Hn
65535
>ulimit -Sn
65535
>ulimit -n                                                                                                                                                  65535
>cat /etc/security/limits.conf
*    soft    nofile    65535
*    hard    nofile    65535
> sysctl -a | grep file                                                                                                  
fs.file-max = 6553600

Как бы это полечить?

★★★★★

> Как бы это полечить?

Увеличить лимиты? Ты же сам нашёл, где они заданы. Убедись, что в /proc/$SERVER_PID/limits цифры соответствуют тому, что в limits.conf. Иначе сервер запускается как-то мимо pam'а. Тогда надо рулить лимитами в нём самом или в скрипте запуска.

const86 ★★★★★
()
Ответ на: комментарий от const86

const86

Ты же сам нашёл, где они заданы


Ой, как здорово, я то печатал ну совершенно наугад, а оказывается, я нашёл то, что нужно.
Вопрос как бы не про то, где они задаются, а почему, не смотря на то, что значения на вид большие и достаточные возникает упомянутая ошибка.
И как с этим бороться.
В proc у процесса нет limits.
Клиентов буквально пара десятков, это, по идее не та нагрузка под которой сервак должен начинать задыхаться.

zolden ★★★★★
() автор топика
Ответ на: комментарий от zolden

Наверное, нужно посмотреть сколько файлов держит открытыми сервер (через /proc/$SERVER_PID/fd), может он их просто «забывает» закрывать.

ЕМНИП, лимиты на файлы действуют на пользователя (сумма по всем процессам пользователя), поэтому, может что ещё работает от этого же пользователя, что и сервер и не закрывает файлы.

Ну и можно сделать cat /proc/sys/fs/file-max , чтобы убедиться, что через sysctl туда действительно записалось это число. 6,5 миллионов это как-то слишком много, ИМХО.

p.s. В связи с чем происходит массовое переподключение?

mky ★★★★★
()
Ответ на: комментарий от mky

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

zolden ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.