PROD欧洲主权BaaS平台打开仪表板 →

性能 · 9 最小读取值

无服务器 Postgres 冷启动解释

Affane Daylami · Fondateur · 2026年5月21日

返回博客

Postgres 无服务器冷启动是指当数据库因不活动而暂停其计算时添加到查询中的延迟,然后必须在响应之前重新启动它。这是 Neon 的核心机制,其架构将存储和计算分开。

该英文文本是根据法文原文自动生成的,尚未经过审查。
该页面已自动翻译。英文版具有权威性。

然而,这并不是一个普遍的概念。 Supabase 和 Aurabase 提供专用的 Postgres 实例,但不会以相同的方式公开相同的机制。本文详细介绍了 Neon 在其冷启动时实际记录的内容、Vercel Postgres 和 Supabase 的比较情况,以及 Aurabase 模型适合的位置,直接在配置程序代码中进行验证,而不是从营销页面推断。

要点

  • 无服务器冷启动是指挂起的数据库在响应第一个请求之前必须唤醒其计算时所增加的延迟。
  • Neon 将存储和计算分开:计算在一段记录的不活动时间后进入睡眠状态(免费计划默认为 5 分钟,可在付费计划中配置)。
  • Neon 记录的重启时间通常为几百毫秒到几秒,该数字由发行商发布,可通过社区工具 neon-latency-benchmarks.vercel.app 进行实时测量。
  • Vercel Postgres 依赖于 Neon 基础设施:唤醒行为遵循相同的机制,但品牌不同。
  • Supabase 为每个项目提供专用数据库,每个连接无需冷启动。只有免费计划会暂停不活动的项目,并进行手动恢复。
  • Aurabase 为每个项目提供专用的 Postgres 数据库、专用 CNPG 集群或共享集群上的专用基础:这不是 Neon 无服务器模型,已在配置程序代码中进行验证。
#
概念

什么是无服务器 Postgres 数据库的冷启动?

当运行数据库的计算因不活动而进入睡眠状态时,就会发生冷启动,并且新查询必须首先重新启动它才能运行。这不是典型 TCP/TLS 连接的常见网络延迟:这是启动新 Postgres 进程并恢复其状态的时间,甚至在第一个请求开始执行之前也是如此。

The term comes from serverless computing broadly, where a zeroed execution environment must restart before processing a request, whether it is a server function or a WebAssembly runtime at the edge. We detail this mechanism on the edge functions side in our article on cold start WebAssembly facingcontainers. For a database, the mechanics differ: it is not a compiled binary that starts, but a complete Postgres server which must reopen its files, validate its state, then accept new connections.

1. 客户登录

请求到达计算已暂停的项目。

2.睡眠检测

平台注意到计算不再活动。

3. 重启计算

Postgres 进程重新启动,必要的状态已恢复。

4. 请求已处理

连接成功,请求正常执行。

冷启动机制图示,简化序列,无测量时间值。

#
霓虹灯

Neon 为什么让其计算进入睡眠状态,以什么速度进入睡眠状态

Neon 将其数据库架构分为两个不同的层:保存数据的持久存储和计算、Postgres 进程本身,可以独立停止和重新启动。根据其官方文档,这种分离允许 Neon 暂停不活动项目的计算而不接触数据,然后根据需要重新启动它。

在免费计划中,Neon 记录了在让计算进入睡眠状态之前默认的 5 分钟不活动超时。付费计划允许您配置此阈值,甚至可以显着提高它以用于恒定流量。这种类型的默认值会随着产品更新而变化:在阅读时检查 Neon 文档是最新的,而不是这个孤立的图。

这种设计服务于特定目的、短暂的环境。每个 Git 分支一个数据库、通过拉取请求提供的预览环境、每天仅使用几分钟的测试数据库:为这些用途连续运行计算成本高昂,而且没有真正的好处。在两次使用之间暂停计算可以减少费用而不删除数据,这是 Neon 无服务器模型的核心论点。

#
测量

霓虹灯闹钟可以持续多长时间以及如何自行检查

Neon 在其文档中指出,计算重新启动通常需要几百毫秒到几秒的时间,具体取决于项目的大小以及计算准备就绪之前要重播的事务日志量。这是出版商自己发布的数字,而不是独立审计:将其视为记录的数量级,而不是合同保证。

对于实际测量,公共社区工具 neon-latency-benchmarks.vercel.app 会定期对暂停的 Neon 项目进行民意调查,并显示观察到的唤醒延迟。这种方法比单纯的文档数据更重要:测试条件仍然可见,而不是隐藏在营销平均值后面。我们在自己的 后端基准测试方法中应用相同的原则:在发布图形之前发布协议。

项目规模需要验证的关系和 WAL 量越多,重启时间就越长。
地区及网络距离增加连接延迟,与冷启动本身无关。
定价方案付费计划允许您配置或延长不活动阈值。
连接频率保持定期请求的计算永远不会遇到这种延迟。
#
Vercel Postgres

Vercel Postgres 和 Neon:不同品牌下的同一引擎?

Vercel 已基于 Neon 基础设施构建了 Postgres 数据库产品,这一合作关系于 2024 年公开。截至撰写本文时,Vercel Marketplace 中提供了此 Postgres 集成,作为与其他提供商一起的存储选项。查看更新的 Vercel 产品页面:这种类型的合作伙伴关系在每个季度都在变化的市场中迅速发展。

具体来说,通过 Vercel 配置的 Postgres 数据库的睡眠和唤醒行为遵循与上面直接针对 Neon 描述的相同机制。它不是一个具有自己的冷启动模型的单独引擎,而是 Vercel 集成背后暴露的相同基础设施。

#
苏帕贝斯

Supabase 是否具有类似的冷启动能力?

不,不是以同样的方式。 Supabase 为每个项目提供一个专用的 Postgres 实例,而不是每个连接暂停的无服务器计算。因此,与 Neon 模型不同,几分钟不活动后,每个新会话不会添加唤醒延迟。

然而,免费计划中存在一种不同的机制:Supabase 记录了不活动项目在较长时间后自动暂停(根据其文档,大约一周),并从仪表板手动恢复,而不是在第一个请求时自动唤醒。这是一个以天而不是分钟为单位衡量的阈值,是一个明确的行动而不是透明的恢复:与 Neon 冷启动的两个结构差异,而不是同一机制的简单变体。为了进行完整的架构比较,我们详细的 Aurabase 与 Supabase 比较记录了其他差异。

#
光环基地

和 Aurabase 模型:为什么比较不适用

Aurabase 不提供像 Neon 这样的无服务器模型。在配置程序代码中进行验证(aura-provisioner,在 github.com/daylami555/aurabase 上开源):每个项目都会收到由 CloudNativePG(Kubernetes CNPG 操作员)管理的专用 Postgres 集群,或者在同一组织的多个项目之间共享的 CNPG 集群上的专用基础,具体取决于所选计划。在这两种情况下,它不是在每个连接处挂起和唤醒的单个计算:它是一个完整的 Postgres 集群,具有主副本和可能的副本。

Aurabase 端确实存在休眠机制,但它有不同的用途。如果长时间不活动(默认情况下为 7 天,可通过环境变量进行配置)、代码中验证的阈值,配置程序会将不活动实例置于睡眠状态以释放资源,而不是优化间歇性使用的延迟。唤醒休眠的 CNPG 集群会从持久卷中重新创建其 pod,这是一种结构上比简单的无服务器进程重启更重的机制。

我们不发布的内容

Aurabase 迄今为止尚未发布任何唤醒延迟数据,既没有声称唤醒时间很快,也没有将其与 Neon 进行比较。这不是同一种产品,在没有公布测量结果的情况下冒充它是不诚实的。

这种专用架构在隔离和性能可预测性方面具有直接对应性:与规模较小的共享集群不同,一个项目不与另一个项目共享其计算。我们在专门的文章中详细介绍了这一仲裁:专用与共享基础,对性能和隔离的实际影响。

#
决定

根据您的用例选择

Neon 无服务器模型服务于特定的用例:许多短暂的环境或具有非常间歇性流量的环境,在这些环境中为连续运行的计算付费在经济上没有意义。每个 Git 分支一个数据库、通过拉取请求提供的预览环境、每周测试几次的原型:偶尔的冷启动成为针对与实际使用成比例的发票的可接受的折衷方案。

相反,每当首次连接延迟需要保持可预测时,专用的、始终在线的 Postgres 架构就变得更可取:具有常规流量的生产 API、无法承受用户请求的偶尔延迟峰值的后端,或者 p99 比独立测试分支的成本更重要的系统。

供应商计算模型睡眠触发典型的闹钟
霓虹灯与存储分离的无服务器计算不活动,5 分钟起(免费计划)自动,亚秒到秒(声称编辑器)
Vercel Postgres霓虹灯基础设施(合作伙伴)与霓虹灯相同与霓虹灯相同
苏帕贝斯每个项目都有专门机构长时间不活动,仅限免费计划手动,从仪表板恢复
光环基地专用或共享 CNPG 集群长时间不活动,默认为 7 天无意作为次秒,未发布

霓虹灯闹钟:出版商记录的数量级,未经独立审核。 Aurabase 休眠阈值:在 aura-provisioner中检查,变量 HIBERNATE_INACTIVITY_DAYS,默认 7 天。

#
常见问题解答

常见问题

Neon 冷启动是否会影响所有查询?+
不会。一旦计算被唤醒,只要流量继续存在,它就会保持活动状态:只有一段时间不活动后的第一个请求才会受到唤醒延迟的影响。具有正常流量的项目几乎不会出现这种延迟,除非自愿配置非常短的不活动阈值。
我们可以禁用 Neon 上的冷启动吗?+
在付费计划中,Neon 记录了在入睡前配置或延长不活动阈值的可能性,这减少甚至消除了流量恒定的项目在实践中的冷启动。在最新的 Neon 文档中检查您的计划中可用的设置,这些设置随产品而变化。
Vercel Postgres 的冷启动与 Neon 不同吗?+
不会,因为该服务基于 Neon 基础设施本身,通过 2024 年公开的合作伙伴关系。睡眠和唤醒行为遵循相同的机制,属于 Vercel 品牌。
Supabase也可以冷启动吗?+
不是 Neon 理解的那种意义上的。 Supabase 为每个项目提供一个专用数据库,而不是每个连接一个无服务器计算。唯一可比较的机制是免费计划,其中长时间不活动的项目被暂停并且必须手动恢复,这与登录时自动唤醒的过程不同。
Aurabase 是否提供像 Neon 一样的无服务器模式?+
不会。Aurabase 根据计划为每个项目提供专用的 Postgres 数据库、专用 CNPG 集群或共享集群上的专用基础,并在配置程序代码中进行验证。存在长时间空闲休眠机制来释放资源,但它不是像 Neon 那样的连接挂起的无服务器计算模型,并且尚未发布该机制的唤醒延迟数据。
#
结论

要记住什么

Postgres 无服务器冷启动不是一个普遍的概念:它是 Neon 架构的直接结果,它将存储和计算分开,以在两种使用之间暂停后者。 Vercel Postgres 通过与 Neon 的合作直接继承了它。 Supabase 和 Aurabase 提供专用的 Postgres 实例,暴露了不同的机制,以天而不是分钟为单位来衡量,并不是为相同的目的而设计的。

仅根据此标准选择提供商之前,请检查三件事:提供商记录的实际不活动阈值、是否可以根据您的计划进行配置,以及您的应用程序流量是否证明暂停计算是合理的。对于真实间歇性流量、测试分支或预览的使用,无服务器模型具有明显的经济效益。对于常规流量的生产,专用架构可以简单地消除这个问题。

准备好部署了吗?

五分钟内完成您的后端。

无需信用卡 · 500 MB 免费 · 50,000 MAU