Назад | Перейти на главную страницу

(узел) Достигнут максимальный предел файла. Увеличьте «ulimit -n»

В 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 имеет некоторые логические недостатки.