С некоторых пор мы получаем сообщение «Слишком много открытых файлов» в приложении Java при загрузке файлов. Итак, я начал поиск в Google и увеличил fs.file-max
до 200000
в моем /etc/sysctl.conf
. После этого я запускаю sysctl -p
. Но это не помогло. Потому что, когда я набираю cat / proc / sys / fs / file-nr
, он возвращает 2550 0 200000
. Первые четыре цифры меняются, но 0 всегда равен 0, с тех пор как я начал искать ..
Что я здесь делаю не так, или как я могу это исправить?
Я использую релиз CentOS 5.9 (final)
, с одним SSD, поэтому я не думаю, что это будет проблемой. (Кроме того, он не налитый, слабый или что-то в этом роде, и он уже несколько месяцев работает нормально.)
Еще кое-что, но я не уверен, есть ли у него что-нибудь с этой проблемой; Я могу создавать, уничтожать и редактировать файлы через SSH с помощью nano / rm. И приложение Java работает нормально до этой проблемы.
Спасибо.
Забудьте об уровне ОС fs.file-max
, это максимальное количество файловых дескрипторов, которые ваш текущий пользователь / группа может иметь (для каждого процесса), которые вы хотите редактировать . См. ulimit -n
.
Вы можете настроить это ограничение как root, изменив /etc/security/limits.conf
. Также убедитесь, что ограничение применяется, добавив ulimit -SHn 8192
(или любое другое ограничение, которое вы хотите иметь) в ваш ~ / .bashrc
.