更新时间:2026-11-05 GMT+08:00
分享

应用性能规格

RDS Supabase内部包含一个名为Supavisor的连接池组件,它是专为RDS for PostgreSQL数据库设计并开源的云原生、分布式数据库连接池(Connection Pooler),在系统中承担着至关重要的“流量调度与连接编排层”角色。其中,POOLER_DEFAULT_POOL_SIZE(后端默认连接池大小)和POOLER_MAX_CLIENT_CONN(最大客户端连接数)是两个核心的容量控制参数,也是面向用户侧非常重要的性能规格参数。这两个参数分别控制着后端(对数据库)和前端(对客户端)的连接行为。

表1 RDS Supabase连接池容量性能参数

参数名称

参数说明

作用对象

核心目的

POOLER_DEFAULT_POOL_SIZE

定义了Supavisor连接池为每个数据库用户/租户分配的、与托管的底层RDS for PostgreSQL数据库保持的最大实际TCP连接数。

Supavisor ↔ PostgreSQL数据库

保护数据库,防止内存耗尽。

  • 数据库保护锁:RDS for PostgreSQL的每个连接都会消耗显著的服务器内存(通常几兆到几十兆不等)。这个参数设定了一个硬性上限,确保Supavisor绝对不会向数据库建立超过该数量的连接,从而防止数据库因连接过多而崩溃(OOM)。
  • 连接复用与排队:当前端并发请求超过这个数值时,Supavisor不会向数据库申请新连接,而是让超出部分的请求在池中排队,等待之前的请求释放后端连接并复用它。
  • 默认行为:在多租户环境下,这是每个独立连接池的默认容量。

POOLER_MAX_CLIENT_CONN

定义了Supavisor允许同时接入的前端客户端(如你的API服务、边缘函数、前端应用等)的最大连接总数。

应用程序/客户端 ↔ Supavisor

允许高并发,吸纳大量应用请求。

  • 高并发吸纳器:这是连接池发挥作用的核心。由于客户端连接(应用程序到 Supavisor)是非常轻量级的,Supavisor可以承载远多于底层数据库承载能力的客户端连接。

  • 流量闸门:决定服务同时能有多少个实例或进程保持在线。如果应用部署了大量的边缘函数(如华为云FunctionGraph云函数),每个函数都会占用一个客户端连接。一旦达到这个上限,新的客户端尝试连接Supavisor时,连接请求将会被拒绝。

对于不同资源规格档位下的RDS Supabase,其连接池容量性能参数默认配置也不相同,默认配置与约束,详见表2。

表2 RDS Supabase连接池容量性能参数

规格场景

规格码

CPU数

内存(GB)

后端默认连接池大小

最大客户端连接数

托管RDS for PostgreSQL实例的规格要求

2 vCPUs | 4 GB单机版(默认免费)

rds.supabase.n1.large.2

2

4-

20

100

  • ≥ 2 vCPUs | 4 GB
  • 主备或单机版

2 vCPUs | 8 GB单机版(默认免费)

rds.supabase.n1.large.4

2

8

20

500

  • ≥ 2 vCPUs | 8 GB
  • 主备或单机版

4 vCPUs | 8 GB单机版(申请评估)

rds.supabase.n1.xlarge.2

4

8

40

1000

  • ≥ 4 vCPUs | 8 GB
  • 主备或单机版

4 vCPUs | 16 GB单机版(申请评估)

rds.supabase.n1.xlarge.4

4

16

40

1200

  • ≥ 4 vCPUs | 16 GB
  • 主备或单机版

8 vCPUs | 16 GB单机版(申请评估)

rds.supabase.n1.2xlarge.2

8

16

80

2400

  • ≥ 8 vCPUs | 16 GB
  • 主备或单机版

8 vCPUs | 32 GB单机版(申请评估)

rds.supabase.n1.2xlarge.4

8

32

80

2800

  • ≥ 8 vCPUs | 32 GB
  • 主备或单机版

16 vCPUs | 32 GB单机版(申请评估)

rds.supabase.x1.4xlarge.2

16

23

160

5600

  • ≥ 16 vCPUs | 32 GB
  • 主备或单机版

16 vCPUs | 64 GB单机版(申请评估)

rds.supabase.x1.4xlarge.4

16

64

160

6400

  • ≥ 16 vCPUs | 64 GB
  • 主备或单机版

在实际业务使用过程中,请确保Supabase托管规格匹配的PostgreSQL数据库实例,并控制好业务客户端连接数,避免超过最大连接数,避免长连接占用和高频耗时调用,否则可能会导致连接被拒绝,引发业务超时中断,严重时可能造成PostgreSQL数据库连接被打满,造成执行响应慢。

RDS Supabase应用托管数据库实例后,内部默认会占用40~50个数据库客户端连接,因此请尽可能使用比较空闲(客户请求较少)的数据库实例,避免由于可用连接数不足所导致的客户业务响应超时、业务中断甚至故障不可用。

相关文档