Проблемы с памятью при использовании пула соединений node_postgres

#node.js #out-of-memory #connection-pooling #sockjs #node-postgres

#node.js #нехватка памяти #объединение в пул соединений #sockjs #узел-postgres

Вопрос:

я довольно новичок в node.js и при использовании библиотеки node_postgres. Я использовал sockjs и Primus в качестве транспорта для прототипа моего веб-сервера. Я использовал PM2 в качестве инструмента мониторинга на своем сервере и заметил, что использование оперативной памяти увеличивается при запросе postgres. Я использую node_postgres, встроенный в пул соединений для базы данных. Отключение клиента от сервера не приводит к удалению памяти, и это только усугубляет ситуацию, чем больше клиентов я подключаю и чем больше запросов выполняю. Как мне очистить эту память, когда клиенты отключаются от моего сервера? Я был бы признателен за любые предложения от вас, ребята! вот мой код:

 var Static = require('node-static');  
var http = require('http');
var file = new Static.Server('./public');
var PORT = 8083;

var pg = require('pg');
var conString = "postgres://username:password@localhost/database";

/*********** Primus Plugins ***************/
var Primus = require('primus');
var Emitter = require('primus-emitter');

var server = http.createServer(function (request, response) {  
    request.addListener('end', function () {
    file.serve(request, response);
   }).resume();
 }).listen(PORT);




// primus instance
var primus = new Primus(server, { transformer: 'sockjs', parser: 'JSON' });

// add emitter to Primus
primus.use('emitter', Emitter);




primus.on('connection', function (spark) {


  console.log("User: "   spark.id   " connected");


  spark.on('test', function (data){

    pg.connect(conString, function(err, client, done) {
     if(err) {
       return console.error('error fetching client from pool', err);
     }

     client.query('SELECT * from tbldata where dev_id = '   data, function(err, result) {




    if(err) {
      return console.error('error running query', err);
    }

   console.log(result);
   spark.send('done_query', result);

   //call `done()` to release the client back to the pool
   done();
   });

 });



  });

});

primus.save(__dirname  '/primus.js');
  

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

1. Есть ли на это какой-либо ответ?