应用性能规格
RDS Supabase内部包含一个名为Supavisor的连接池组件,它是专为RDS for PostgreSQL数据库设计并开源的云原生、分布式数据库连接池(Connection Pooler),在系统中承担着至关重要的“流量调度与连接编排层”角色。其中,POOLER_DEFAULT_POOL_SIZE(后端默认连接池大小)和POOLER_MAX_CLIENT_CONN(最大客户端连接数)是两个核心的容量控制参数,也是面向用户侧非常重要的性能规格参数。这两个参数分别控制着后端(对数据库)和前端(对客户端)的连接行为。
| 参数名称 | 参数说明 | 作用对象 | 核心目的 |
|---|---|---|---|
| POOLER_DEFAULT_POOL_SIZE | 定义了Supavisor连接池为每个数据库用户/租户分配的、与托管的底层RDS for PostgreSQL数据库保持的最大实际TCP连接数。 | Supavisor ↔ PostgreSQL数据库 | 保护数据库,防止内存耗尽。
|
| POOLER_MAX_CLIENT_CONN | 定义了Supavisor允许同时接入的前端客户端(如你的API服务、边缘函数、前端应用等)的最大连接总数。 | 应用程序/客户端 ↔ Supavisor | 允许高并发,吸纳大量应用请求。 |
对于不同资源规格档位下的RDS Supabase,其连接池容量性能参数默认配置也不相同,默认配置与约束,详见表2。
| 规格场景 | 规格码 | CPU数 | 内存(GB) | 后端默认连接池大小 | 最大客户端连接数 | 托管RDS for PostgreSQL实例的规格要求 |
|---|---|---|---|---|---|---|
| 2 vCPUs | 4 GB单机版(默认免费) | rds.supabase.n1.large.2 | 2 | 4- | 20 | 100 |
|
| 2 vCPUs | 8 GB单机版(默认免费) | rds.supabase.n1.large.4 | 2 | 8 | 20 | 500 |
|
| 4 vCPUs | 8 GB单机版(申请评估) | rds.supabase.n1.xlarge.2 | 4 | 8 | 40 | 1000 |
|
| 4 vCPUs | 16 GB单机版(申请评估) | rds.supabase.n1.xlarge.4 | 4 | 16 | 40 | 1200 |
|
| 8 vCPUs | 16 GB单机版(申请评估) | rds.supabase.n1.2xlarge.2 | 8 | 16 | 80 | 2400 |
|
| 8 vCPUs | 32 GB单机版(申请评估) | rds.supabase.n1.2xlarge.4 | 8 | 32 | 80 | 2800 |
|
| 16 vCPUs | 32 GB单机版(申请评估) | rds.supabase.x1.4xlarge.2 | 16 | 23 | 160 | 5600 |
|
| 16 vCPUs | 64 GB单机版(申请评估) | rds.supabase.x1.4xlarge.4 | 16 | 64 | 160 | 6400 |
|
在实际业务使用过程中,请确保Supabase托管规格匹配的PostgreSQL数据库实例,并控制好业务客户端连接数,避免超过最大连接数,避免长连接占用和高频耗时调用,否则可能会导致连接被拒绝,引发业务超时中断,严重时可能造成PostgreSQL数据库连接被打满,造成执行响应慢。
RDS Supabase应用托管数据库实例后,内部默认会占用40~50个数据库客户端连接,因此请尽可能使用比较空闲(客户请求较少)的数据库实例,避免由于可用连接数不足所导致的客户业务响应超时、业务中断甚至故障不可用。