ikasymov
я уменя сервер ругается
FATAL ERROR: NewSpace::Rebalance Allocation failed - process out of memory
ikasymov
и что делать?
ikasymov
в конце обьязательно добавить process.quite() ?
Dmitriy
Ну брать себя в руки) Далее пишешь код так чтобы он сворачивался норм
Dmitriy
Закрытие всех коннектов
Sheldhur
процесс сожрал всю выделенную для него пямять
Dmitriy
Завершение всех интервалов и т.д.
Sheldhur
тебе при запуске скрипта надо указать, сколько нода может сожрать оперативы
Dmitriy
Нода сама умрет если ты правильно ее приготовишь(завершишь все активные процессы, коннектц и т.д.)
Sheldhur
по умолчанию 1.5гб вроде жрет
ikasymov
локально он у меня не умирает а стоит просто
ikasymov
пока сам не убил ctrl + c
Dmitriy
Значит он что-то делает или что-то ждет
Dmitriy
Ты не завершил что-то в логике или коннектах
старий
listen скорее всего
ikasymov
понятно
Dmitriy
Лучше писать демонов + запуск через pm2
ikasymov
что за listen?
старий
а там крон
Dmitriy
Я советую отучаться от крона, когда у тебя логика растет в кроне уже все не очень прозрачно
старий
все, извиняйте
Dmitriy
А че там в коде то происходит?
ikasymov
парсеры
Dmitriy
Подключения к базе есть?
ikasymov
30 + парсеров
ikasymov
каждый час запускаю 30 + файлов
ikasymov
все не завершаются
ikasymov
сегодня смотрю ругается на память
Sheldhur
Dmitriy
Может
ikasymov
как убить процессы сейчас? что б не жрал данный момент
ikasymov
Dmitriy
Нода умирает если ей больше нечего делать
ikasymov
sequelize
Dmitriy
Если есть хоть любой малейший намек на работу демона, то нода не умрет
Sheldhur
ой, выкинь это говно
Sheldhur
если в нем действительно нет необходимости
ikasymov
код обычный такой
let value = await db.Parser.findOrCreate({
where: {
key: data.dataName
},
default: {
key: data.dataName,
value: urlList[0]
}
});
Sheldhur
лучше нативным
Dmitriy
1) Лучше нативный модуль имхо
2) Закрыть все коннекты к базам
3) Убедиться что все заканчивается без таймоутов и т.д.
Sheldhur
конекты то зачем закрывать
Sheldhur
имхо они как раз должны быть открыты
Dmitriy
Иначе нода не будет умирать
ikasymov
коннекты у меня вроде нет
Sheldhur
особенно если пулл
Dmitriy
У него php стайл)
Dmitriy
Запустил, поработало, закрылось
Sheldhur
так пусть нормальный демон сделает
Sheldhur
я таки думаю что надо просто --max-old-space-size=8192 добавить
Sheldhur
и жизнь наладится
Sheldhur
дальше смотреть
Dmitriy
Лучше писать демонов + запуск через pm2
ikasymov
Dmitriy
Да что наладится то)
Sheldhur
параметр при запуске скрита
ikasymov
0 * * * * node /home/user/project/file.js
ikasymov
куда добавить?
Dmitriy
Если ты в кроне будешь запускать ноду которая тупо висит и ничего не делает то через сутки у тебя будет 48 таких нод
Sheldhur
по памяти оверхед
ikasymov
ikasymov
которые весят
старий
htop
Dmitriy
Ну имхо лучше на потоки перейти и логики продумать, чем давать ноду 8 гб))
ikasymov
linux os
Dmitriy
ps aux | grep node
Dmitriy
И имхо 30+ парсеров это в крон не надо, пиши демона нормального, который не будет закрываться и который сам будет контролировать что за чем идет и как работает
Sheldhur
а если просто из одного ведра в другое через сито перелить, тогда да
Dmitriy
Согласен, но думаю если ситуаци такая как описывается, то проблема все таки не в данных)
Sheldhur
process out of memory явно указывает, что оверхед по памяти на процесс
Dmitriy
Это очевидно да)
Sheldhur
т.ч. увеличение --max-old-space-size поможет, если у него php стайл
Dmitriy
Нет, не поможет, пока скрипты не будут умирать)
Dmitriy
Через неделю у него будет 48*7 запущенных нод
Dmitriy
и так далее
ikasymov
может по конкретней скажете что мне делать?
Sheldhur
gc же подчищает
Sheldhur
а, у него процесс не умирает