Я пытаюсь понять, почему мое приложение nodejs становится не отвечает после 11 часов 20 минут. Это происходит каждый раз, независимо от того, запускаю ли я его на amazon-linux
или Red Hat
.Узел приложения не отвечает за определенное количество времени
Мои Стек:
- nodejs (v 6.9.4.)
- MongoDB (3.2)
- PM2 менеджер процессов
- AWS EC2 экземпляр Т2 среднего
Каждый раз, Я запускаю приложение, он становится невосприимчив с ошибкой, возвращенной в браузер:
сетка :: ERR_CONNECTION_RESET
Pm2 не перезапустить приложение, так что я подозреваю, что это не имеет ничего общего с nodejs
, я также проанализировал приложение и он не имеет утечек памяти. Журналы Db также выглядят хорошо.
Единственным постоянным фактором является то, что приложение вылетает после его запуска в течение 11 часов 20 минут.
Я обрабатываю все возможные ошибки из приложения nodejs
, но ошибок в файлах журналов не возникает, поэтому я подозреваю, что это должно быть что-то еще.
Я также проверил var/log/messages
и /home/centos/messages
, но ничего не связано с крушением приложения.
/var/log/mongodb/mongo.log
также не показывает ничего конкретного.
Что было бы лучшим способом подойти к проблеме?
Любые подсказки, как я могу его отладить или что может быть причиной?
Благодаря
Вы пропускаете что-то другое, кроме памяти, это моя догадка, возможно, файловые дескрипторы. Попробуйте использовать netstat или lsof, чтобы узнать, есть ли гораздо больше открытых подключений или файлов, чем вы ожидаете. –
это работает, если вы используете узел напрямую, а без pm2? – Robbie
@WillisBlackburn Это похоже! Соединение UDP не освобождается, а nodejs достигает жесткого предела. Не знаете, как работает переполнение стека, но могу ли я принять ваш комментарий в качестве ответа? Пока не подтверждено, мне нужно провести еще один день на тестировании, но похоже на это! Большое большое спасибо! Я потратил на это сотни часов! – matewilk