|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
Детектирование утечки памяти для скриптов на NodeJS02.04.2021, 16:25. Показов 2144. Ответов 23
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане! Сделал все согласно переписке в этой теме NodeJS и потребление оперативной памяти. Пытаюсь понять есть ли учечка в моих скриптах. В прикрепленном файле статистика по всем скриптам (их 10) за вчера и сегодня (замерял каждые 30 секунд для каждого скрипта). Учечка, все-таки, есть, но я не знаю как с ней бороться. Если кто-то сталкивался с подобной проблемой, прошу объяснить как можно устранить утечку в скриптах (если нужно могу показать скрипты). Память постепенно увеличивается и рано или поздно достигнет своего предела (придется перезагружать сервер). Очень буду благодарен за ваш ответ.
0
|
|
| 02.04.2021, 16:25 | |
|
Ответы с готовыми решениями:
23
Утилиты для поиска утечки памяти
|
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
|
| 02.04.2021, 17:04 | |
|
скидывайте скрипты, так не разобраться.. + можете профайлинг настроить (можно найти видео в нете, как с ним отслеживать утечки).. и ещё, о каком количестве памяти идёт речь?
1
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 02.04.2021, 17:37 [ТС] | |
|
muxahuk1214, здравствуйте! Спасибо за ваш ответ. Памяти RAM на сервере 4Гб, но было так, что рано или поздно она переполнялась. Я, конечно, настрою cron-задачу и смогу перезапустить проект и nodejs-скрипты, но, все-таки, хочется, чтобы не было такого, если это, конечно, возможно. Прикрепил скрипты. Очень буду благодарен за вашу помощь.
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 02.04.2021, 17:40 [ТС] | ||
|
0
|
||
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
||
| 02.04.2021, 18:11 | ||
|
Но, вообщем, там везде GC должен отрабатывать нормально, возможно кроме cron где вы используете.. или что-то в db модуле
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|||||||||
| 02.04.2021, 18:50 [ТС] | |||||||||
|
muxahuk1214,
Добавлено через 2 минуты Добавлено через 1 минуту
0
|
|||||||||
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
|||
| 02.04.2021, 19:04 | |||
|
Вы пробовали делать запросы в момент когда логали данные? или аппликация просто на фоне работала?
1
|
|||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|||
| 02.04.2021, 19:29 [ТС] | |||
|
muxahuk1214, Я сейчас читаю про Pool и пишут, что его закрывать надо, так как возможна утечка памяти, связанная с БД. Попробую сейчас найти решение.
Добавлено через 15 минут
0
|
|||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 02.04.2021, 19:35 [ТС] | ||
|
0
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 02.04.2021, 20:05 [ТС] | |
|
muxahuk1214, в режиме реального времени наблюдаю резкое снижение во всех скриптах (возврат к первоначальному значению) показателей использованной памяти (см. прикрепленный архив). Я добавил везде, где были запросы к БД conn.release() и судя по последним показателям проблема была именно в этом. Спасибо вам огромное, что помогли.
0
|
|
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
||
| 02.04.2021, 21:00 | ||
|
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 02.04.2021, 21:13 [ТС] | ||
|
0
|
||
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
|||||||
| 02.04.2021, 21:21 | |||||||
1
|
|||||||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 03.04.2021, 13:38 [ТС] | ||
|
muxahuk1214, все-таки не удалось исправить утечки в скиптах. Мне показалось, что в режиме реального времени все пошло на спад после conn.release() - оказалось это был просто перезапуск скриптов. Я никак не могу понять почему происходят эти утечки. Наверное, придется вернуться к PHP у которого таких проблем не наблюдалось.
P.S. Неужели никто не сталкивался с подобными проблемами? Добавлено через 11 минут muxahuk1214, но все-таки, текут именно те скрипты, в которых я делаю запросы к БД. Значит, все-таки, что-то не так там? Добавлено через 22 минуты muxahuk1214, вообщем, неясно. То есть скачки без БД, то нет. Ничего не понятно. Где утечка и почему...
0
|
||
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
||
| 03.04.2021, 13:46 | ||
|
утечка памяти обычно берётся из скриптов в которых в функции сохраняют что-то в глобальный стейт и из-за этого память не может автоматически очиститься.. у вас в тех скриптах которые вы прислали такого нет...
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 03.04.2021, 14:42 [ТС] | |
|
muxahuk1214, из-за чего еще память в nodejs-скриптах увеличиваться может? Ведь видно в файлой статистике, что используемая память постоянно растет. Это может как-то зависеть от используемого сервера?
Добавлено через 5 минут muxahuk1214, как часто GС вообще приходит, вы знаете?
0
|
|
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
||
| 03.04.2021, 14:47 | ||
|
Вы понимаете что такое память?.. в файловой статистике видно что она увиличивается +- на 0.5 мегабайта в час... тупо из-за футпринта того же экспресса.. это нормально.. Если бы у вас память увиличиволась на 100 мегабайт каждый час - это было бы memory leak - то, что там меньше 1 мегабайта - это нормально... нет у вас memory leak...
Добавлено через 46 секунд
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 03.04.2021, 14:50 [ТС] | ||
|
muxahuk1214,
0
|
||
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
||
| 03.04.2021, 14:58 | ||
|
Добавлено через 2 минуты а если не хотите сами перезагружать - можете подключить pm2 и задать ему авто перезагрузку каждый день или неделю или месяц...
1
|
||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 03.04.2021, 15:00 [ТС] | |
|
muxahuk1214, muxahuk1214, вообщем, я еще понаблюдаю несколько дней, вам отпишусь. Там в некоторых скриптах растет медленно, но в первом, по новым данным увеличение но 6Мб за пол часа - это все таки не мало.
0
|
|
| 03.04.2021, 15:00 | |
|
Помогаю со студенческими работами здесь
20
утечки памяти Утечки памяти Утечки памяти Утечки памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|