У меня есть служба веб-сокетов. Странно, что есть ошибка: "слишком много открытых файлов", но я установил конфигурацию системы:
/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/938669
- http://bryanmarty.com/blog/2012/02/10/setting-nofile-limit-upstart/
- Увеличение максимального количества открытых файлов для Ubuntu/Upstart (initctl)
Теперь вопрос в том, как установить глобальный лимит nofile, потому что я не хочу устанавливать лимит nofile в каждом скрипте upstart, который мне нужен.