Как исправить утечку памяти в node.js - PullRequest
0 голосов
/ 30 марта 2020

В последние дни я борюсь за этот конкретный случай в моем приложении.

В течение дня приложение извлекает данные из другой базы данных (около 400 тыс. Записей) и обрабатывает их. После обработки приложение сопоставляет элементы с коллекциями в базе данных этого приложения и сохраняет их.

Все идет хорошо до конца функции. В настоящее время я вызываю его через запрос http, но это будет работа CRON. Таким образом, после попадания в конечную точку .res () ЦП не замедляет работу и не освобождает кучу памяти. Мне просто интересно, что могло бы произойти.

Я прочитал немного об идентификации утечек памяти и обнаружил это. [2] - это процессор, который использовался для обработки данных.

x[ 1] App                         Mem:  68 MB    CPU:  1 %  online xx                                                                                                                                                                   x
x[ 2] App                         Mem: 182 MB    CPU: 135 %  online xx                                                                                                                                                                   x
x[ 3] App                         Mem:  60 MB    CPU:  0 %  online xx                                                                                                                                                                   x
x[ 4] App                         Mem:  60 MB    CPU:  0 %  online xx                                                                                                                                                                   x
x[ 5] App                         Mem:  59 MB    CPU:  0 %  online

Как вы можете ясно видеть, память и процессор намного выше, чем на других экземплярах узла. Я думал, что .res () убьет задачу, освободит память и замедлит процессор, но это не так.

Я использую Expressjs, выполнил шаблон MVC и сохранил все логи c в классе компонентов. Есть ли способ освободить эту память, поскольку я пытался применить какую-то функцию очистки, но она не работала :(. У меня закончились идеи о том, как определить возможную проблему. Может быть, есть это что-то очевидное, на что я не обращаю внимания, но, честно говоря, у меня нет такого большого опыта в ноде, чтобы это выяснить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...