Зависает или зависает сервер сокетов TCP js-скрипта узла

#node.js #sockets #tcp

#node.js #сокеты #tcp

Вопрос:

Я получаю данные примерно с 200 устройств отслеживания, а затем вставляю эти данные в базу данных после выполнения некоторого анализа. Я также использую forever , чтобы сервер работал в фоновом режиме. Проблема в том, что примерно через неделю сервер зависает без ошибок. И я должен затем перезапустить всю машину или остановить сервер и перезапустить его снова, чтобы заставить его работать. У меня есть сервер на aws с t2.xlarge и 16 ГБ оперативной памяти. Я также пытался проверить журналы forever, но там не отображается ошибка. Сервер не взрывается, и ошибка не возникает. Например, у меня есть другие скрипты узла и веб-сайты, также запущенные на том же сервере, и они постоянно работают. Только этот сервер GPS-трекера зависает без ошибок. Иногда он успешно работает в течение месяца, а иногда только в течение двух-трех недель

Код, который я использую, это

 var net = require('net');
const cluster = require('cluster');
var numCPUs = require('os').cpus().length;
    if (cluster.isMaster) {
        // Fork workers.
        for (var i = 0; i < numCPUs; i  ) {
            cluster.fork();
        }

        cluster.on('death', function(worker) {
            console.log('worker '   worker.pid   ' died');
            cluster.fork();
        });
    } else {
        net.createServer(function(socket) {
            console.log('received connection...');

            socket.on("error", function(err) {
                console.log("socket error: ")
                console.log(err.stack);
                socket.destroy();
            });
            socket.on('data', function(data) {


                console.log(data.toString());
    });
    }
  

И весь файл js здесь для проверки

https://codeshare.io/aYkkJN

Не знаете, как это отладить или что вызывает эту проблему?

Комментарии:

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