Как установить глобальный лимит файлов, чтобы избежать ошибки «много открытых файлов»?
У меня есть служба веб-сокетов. это странно, что есть ошибка: «слишком много открытых файлов», но я установил конфигурацию системы:
/etc/security/limits.conf
* soft nofile 65000
* hard nofile 65000
/etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65000
ulimit -n
//output 6500
Так что я думаю, что моя система настроена правильно.
Мой сервис управляется супервайзером, возможно ли ограничение супервизора?
проверка запуска процесса супервизором:
cat /proc/815/limits
Max open files 1024 4096 files
Проверьте процесс ручного запуска:
cat /proc/900/limits
Max open files 65000 65000 files
В качестве причины используется супервизор управления обслуживанием. если я перезапущу супервизор и перезапущу дочерний процесс, то это «максимальное количество открытых файлов» нормально (65000), но неправильно (1024), когда перезагрузка системного супервизора запускается автоматически
Может быть, начальный уровень супервизора слишком высок, а конфигурация системы не работает при старте супервизора?
редактировать:
система: Ubuntu 12.04 64bit
Это не проблема супервизора, все процессы запускаются автоматически после перезагрузки системы, не используют конфигурацию системы (макс. Открытых файлов = 1024), но перезагрузите все нормально.
Обновить
Может быть проблема в следующем:
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669http://bryanmarty.com/blog/2012/02/10/setting-nofile-limit-upstart/Увеличение максимального количества открытых файлов для Ubuntu / Upstart (initctl)Теперь вопрос в том, как установить глобальный лимит nofile, потому что я не хочу устанавливать лимит nofile в каждом скрипте upstart, который мне нужен.