Утечка памяти при использовании process.send () с узлом js cluster - PullRequest
0 голосов
/ 09 декабря 2018

Я вижу утечку памяти при использовании process.send() из моих дочерних экземпляров в настройке кластера узлов.

Код, о котором идет речь:

var dataToSend = {
    iterations: k,
    data: output
}
process.send(dataToSend)

Переменная output содержитбольшой массив (например, 1000 индексов) объектов, каждый из которых содержит 8 числовых свойств и 2 строковых свойства

Если я закомментирую process.send(dataToSend), утечка памяти исчезнет.

Я пытался null ing output, dataToSend, а затем форсировать сборку мусора с помощью global.gc() при запуске узла с включенным ручным сборщиком мусора, но, похоже, ничего не работает, у этих дочерних процессов объем памяти RSS просто постоянно увеличивается.

Похоже, что передача объекта в process.send() каким-то образом сохраняет ссылку на него, оставляя его невозможным освободить для сбора мусора?

Любой совет будет оценен

...