14. 源连接池程序

CubicWeb 为其数据源(通常为sqlite或postgresql)提供连接池,它是一个动态池,意味着:

  • 它将保持打开的最小连接数(默认为0)

  • 当负载增加时,它将打开新的连接

  • 如果设置了最大连接数,它将在达到最大连接数时停止

  • 如果最大连接数为零,则认为它是无限的

  • 一段空闲时间后 (connections-pool-idle-timeout ),如果新请求不需要打开新连接,则如果队列不为空,则池将关闭一个未使用的连接

  • 如果一段时间后没有可用的连接,并且已达到最大连接数,则连接池将提升。要解决此问题,您可以增加 connections-pool-max-size 或者将其设置为0,以获得无限数量的连接。如果要设置最大连接数,建议每个进程至少有5个连接。

请注意,在某些“快速启动”情况下(如数据库转储/还原),连接池不会被激活。

14.1. 配置

连接池使用的值是完全可配置的 在实例配置文件中 (通常是 all-in-one.conf ),以下是列表:

  • connections-pooler-enabled :启用连接池程序,默认值:true。如果您正在使用另一个外部池系统(如pgbouncher),则需要禁用该池。

  • connections-pool-max-size :连接池的最大大小。0表示无限制。每个支持多个连接的源将具有此最大打开连接数,默认值:0

  • min-connections-pool-size :连接池的最小大小。每个支持多个连接的源将具有此最小打开连接数,默认值:0

  • connections-pool-idle-timeout :上次打开连接后池将开始关闭未使用连接的延迟(秒)。连接只在不需要创建新连接的请求时关闭,默认值:600