You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud Run连接PostgreSQL首次尝试间歇性失败问题排查求助

Cloud Run容器首次连接PostgreSQL超时问题排查

环境配置

  • 部署6个Cloud Run容器,均配置2GiB内存、1核CPU及1个最小实例,Dockerfile高度相似,用于运行简单Express服务
  • 使用部署在Cloud SQL上的PostgreSQL数据库(配置2 vCPU、8GB内存),所有Cloud Run容器均可访问该数据库
  • 通过Prisma实现数据库访问,其中一个Cloud Run容器基于BullMQ处理按需简单任务,其基础设施配置与其他容器基本一致

问题现象

  • 仅上述任务处理容器偶尔出现Prisma无法连接数据库的情况
  • 问题通常仅发生在容器重启后的首次数据库连接尝试,重启后间隔时间不定(最长可达数小时)
  • 其他Cloud Run容器几乎无活动,数据库访问量始终极低
  • 具体错误信息:
    Timed out fetching a new connection from the connection pool. More info: http://pris.ly/d/connection-pool (Current connection pool timeout: 10, connection limit: 5)
    
  • 由于是首次连接,不存在连接池连接不足的问题;正常情况下连接获取速度为毫秒级,失败时会耗尽10秒超时时间后报错

已尝试的解决方法

  • 将Prisma的超时时间调整为20秒,连接限制提升至10个,问题仍存在
  • 添加连接重试机制(3次重试):有时3次重试后仍失败,有时仅失败0-2次,但手动进行第4次重试时总能成功
  • 将Prisma的超时时间设为无限,目前未再出现失败,但尝试次数较少,且正常连接速度仍为毫秒级

排除Prisma作为问题根源的依据

  • 仅该任务处理Cloud Run容器出现此问题,所有容器使用相同的Prisma配置(仅连接池参数不同)
  • 预发布和生产环境中的同一任务Cloud Run容器均出现此问题

复现尝试

  • 等待数小时无请求后重试,未成功复现问题
  • 手动部署新Cloud Run实例,待其接管所有流量后发起首次请求,未成功复现问题(尽管多数甚至所有失败均发生在首次请求)

内容的提问来源于stack exchange,提问作者Arnav Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:17:22