adelkhalitov
@adelkhalitov
>

Принудительный запуск global.gc хорошо это или плохо?

На текущий момент я работаю в комманде, которая занимается разработкой для одной достаточно большой платформы. Есть задача интегрировать клиентов этой платформы.
Пока интеграционная шина в разрабоке необходимо реализовать интеграцию нескольких клиентов готовыми методами.

Эта временная интеграция разработана, но возникли серьезные проблемы.

Объем данных большой и эти методы не идеальны для обработки больших данных.
Нужно найти решение не переписывая метод, потому что слишком много на них завязано.

При выполнении интеграции полностью забивается оперативная память, и CPU крутится на пределе, в последствии сервер падает.
Далее я разбиваю работу методов на последовательное выполнение, дабы не хранить большой массив данных в оперативной памяти и сильно не грузить mongodb.
Это проблему решило, но не сильно, тк оперативка все так же загружалась в последствии сервер дропался.

Я попробывал принудительно с запусоком ноды запустить сборщик мусора --expose-gc и после каждого обращения к mongo global.gc() вызывал его. Результат положительный, даже при маленьком кол-ве рам интеграция выполняется замечательно.

Но мне сейчас нужно сделать выводы, это решает проблему или же это костыль, или же это проблема в самих методах из за чего происходит утечка RAM. Может ли это привести к отчистки жизненно важных данных для работы сервера?
Прошу дать оценку и возможные решения этой проблемы.
  • Вопрос задан
  • 478 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы