在某个时间点监视活动的数据库连接

时间:2017-01-29 23:12:05

标签: angularjs node.js postgresql connection-pooling knex.js

在提到我的问题here时,我使用Knex作为数据库库,在我的NodeJS应用程序中遇到时间到第一个字节的速度很慢。

版本:

  • Postgres :9.6.1
  • 节点:7.4.0
  • Knex :0.12.6
  • Angular :1.3

有人建议:

  

要解决此问题,您需要了解如何使用连接:

     
      
  • 游泳池的大小

  •   
  • 在所有请求中管理连接的方式

  •   

当我运行http请求时,如何查看活动连接以及knex如何管理池?如何确保我的连接得到最佳使用?

节点中的池knex配置:

pool: {
  min: 2,
  max: 8,
}

1 个答案:

答案 0 :(得分:1)

使用DEBUG=knex:*环境变量运行您的应用,当您启动请求时,您会看到详细信息knex内发生的情况+时间。

应该给你足够的信息,看看时间的流逝。

如果您想直接从generic-pool请求统计信息,请执行以下操作:

knex = require('knex')({client: 'pg', connection: 'postgres:///knex_test'})
poolStats = {
  connectionsAvailable: knex.client.pool.availableObjectsCount(),
  connectionsUsed: knex.client.pool.inUseObjectsCount(),
  clientsWaitingForConnection: knex.client.pool.waitingClientsCount(),
};

{ connectionsAvailable: 2,
  connectionsUsed: 0,
  clientsWaitingForConnection: 0 }