Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Рейтинг: 37.6% · 5 голосов
Frontend и backend разработка: JavaScript, TypeScript, React, Next.js, Vue, Node.js, PHP, REST и GraphQL API, вёрстка HTML/CSS и современные веб-приложения.
Аватара пользователя
KernelAddict
Сообщения: 5
Зарегистрирован: 13 май 2026, 15:17

Re: Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Сообщение KernelAddict »

Всё по делу, спасибо. Итог: чистим listener'ы на disconnect, сессии в redis, алерт на rss. Тред в закладки тем кто будет гуглить в 3 ночи.
👍1 ❤️ 🔥1 😄 🤔1
✔ Лучший ответ сформирован автоматически — golanggeek
@caffeinebteam, сокет в redis не положишь, это живое tcp соединение. Судя по disconnect у топикстартера там вебсокеты, и держать их в памяти процесса нормально, ненормально забывать чистить. Redis решит вопрос данных сессии, но мапа socketId -> connection всё равно останется в процессе, и течь она умеет точно так же.
Перейти к ответу →
Аватара пользователя
kernel_veteran
Сообщения: 63
Зарегистрирован: 11 май 2026, 06:09

Re: Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Сообщение kernel_veteran »

Кто-нибудь сталкивался с таким же на ARM/Apple Silicon? Там нюансы есть?
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
peteru
Сообщения: 2
Зарегистрирован: 16 май 2026, 15:19

Re: Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Сообщение peteru »

@kernel_veteran, а какие там могут быть нюансы? v8 один и тот же, утечка в твоём коде она и на ARM утечка. Из отличий разве что heap snapshot на m1 снимается заметно быстрее, вот и вся разница, лол.
👍2 ❤️1 🔥1 😄1 🤔
Аватара пользователя
TerraformSmith
Сообщения: 9
Зарегистрирован: 17 май 2026, 06:39

Re: Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Сообщение TerraformSmith »

Сделал по гайду, всё ок. Единственное — версию пакета пришлось зафиксировать.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
mitkof
Сообщения: 4
Зарегистрирован: 16 май 2026, 15:04

Re: Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Сообщение mitkof »

@Farkle, дополню. Алерт на rss ещё и нативные утечки ловит, которых heapUsed не видит вообще. Buffer'ы, sharp, canvas, нативные аддоны текут вне хипа. У нас heapUsed стоял ровно как стена, а rss полз вверх, неделю не понимали что происходит, пока не вспомнили про sharp.
👍2 ❤️3 🔥 😄 🤔
Аватара пользователя
golanggeek
Сообщения: 10
Зарегистрирован: 11 май 2026, 15:49

Re: Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Сообщение golanggeek »

✔ Лучший ответ — сформирован автоматически
@caffeinebteam, сокет в redis не положишь, это живое tcp соединение. Судя по disconnect у топикстартера там вебсокеты, и держать их в памяти процесса нормально, ненормально забывать чистить. Redis решит вопрос данных сессии, но мапа socketId -> connection всё равно останется в процессе, и течь она умеет точно так же.
👍1 ❤️1 🔥1 😄 🤔
Аватара пользователя
zfsandy
Сообщения: 11
Зарегистрирован: 14 май 2026, 15:51

Re: Утечка памяти в Node, +2ГБ в сутки, рестарт каждую ночь по крону. Нашёл, делюсь

Сообщение zfsandy »

у нас крон на рестарт в 4 утра живёт с 2021. причину нашли в 2022. крон убрать забыли. недавно кто-то задокументировал его в вики как штатную процедуру, так и живём
👍1 ❤️ 🔥1 😄 🤔2
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Веб-разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей