В Ubuntu 9 я получаю сообщение на моем сервере, в котором говорится:
(node) Hit max file limit. Increase "ulimit -n"
Однако набор команд в терминале показывает следующее:
$ ulimit
unlimited
$ ulimit -n
65535
И netstat
показывает, что у меня открыто только ~ 1000 подключений.
Как это возможно, я достиг своего лимита в 65535, несмотря на netstat
говорят, что у меня 1000 активных подключений? Кто-нибудь видит проблему с конфигурацией сервера, которую я могу упустить, или есть советы по дальнейшей отладке?
Печатать ulimit -n
в терминале показывает текущий лимит, действующий для вашего текущего сеанса. Если вы изменили ограничение после запуска демона, ограничения для этого демона не изменились. Итак, вам нужно остановить / запустить демон. Но убедитесь, что ограничения не меняются в сценарии инициализации демона.
Кроме того, вы можете добавить что-то вроде этого:
* soft nofile 2048
* hard nofile 2048
в /etc/security/limits.conf, поэтому вам не нужно ulimit -n
вручную каждый раз.
ulimit -n
отображает максимальное количество открытых файловых дескрипторов, а не максимальное количество сетевых подключений. Вы можете использовать lsof -p <PID_OF_node.js>
чтобы выяснить, какие файлы он открыл. Я предполагаю, что ваш код node.js имеет некоторые логические недостатки.