Skip to main content
默认配置适合常见的单机部署。没有反复出现 DATABASE_BUSY,也没有增加 Web 或 Worker 进程时,无需修改连接池。

默认连接容量

默认启用 Workbook 时,应用的保守连接峰值是 51
PostgreSQL 上限 100 已包含足够余量。POOL_SIZE 只是连接池保留的连接数,不是连接上限;连接上限还要加上 MAX_OVERFLOW

遇到 DATABASE_BUSY

DATABASE_BUSY 表示 AskTable 暂时没有拿到数据库连接,或者 PostgreSQL 已达到连接上限。页面会自动重试,仍未恢复时可以手动重试。 如果错误反复出现:
  1. 查看日志,确认来自 Web 请求还是后台刷新。
  2. 后台刷新繁忙时,先降低 AT_WORKER_MAX_JOBS
  3. PostgreSQL 已报连接数耗尽时,不要继续增大连接池。
  4. 只有确认 PostgreSQL 仍有余量、且本地连接池等待超时时,才调大对应的 Web 或 Worker 池。

增加进程时

每增加一个 Web 进程,会增加一套 Web 主库池、最多一套 Workbook 池和一个 LISTEN/NOTIFY 连接。每增加一个 Worker 进程,会增加一套 Worker 主库池和最多一套 Workbook 池。 调整顺序建议是:缩短事务、降低后台并发、调整对应角色的连接池,最后才提高 PostgreSQL 上限。始终为迁移和人工排障保留至少 10 个连接。
所有配置都是静态环境变量,修改后需要重启对应进程。Web 和 Worker 的池容量分别配置;等待和回收时间由两类进程共用。所有池参数必须为非负数,且 Workbook 必须满足 0 <= MIN <= MAX
B 表示启用 Workbook 时的 AT_WORKBOOK_POOL_MAX,未启用时为 0
应用连接上限加至少 10 个运维连接后,必须小于 PostgreSQL 可供普通用户使用的连接数。后者等于 max_connections 减去 reserved_connectionssuperuser_reserved_connections
查看 PostgreSQL 上限:
查看连接来源和长事务:
查看容器日志:
使用外部 PostgreSQL 时,以数据库服务商提供的实际连接上限为准,AskTable 不会自动修改它。