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

Django-DefectDojo搭配AWS无服务器Aurora Postgres频繁连接断开咨询

问题描述

在AWS环境中运行DefectDojo,使用无服务器Aurora(Postgres 13.8)数据库,日志中出现大量连接/断开事件,示例日志如下:

2023-10-04 19:44:04 UTC:10.237.120.220(56990):[unknown]@[unknown]:[19442]:LOG: connection received: host=10.237.120.220 port=56990
2023-10-04 19:44:04 UTC:10.237.120.220(56990):postgres@defectdojo:[19442]:LOG: connection authorized: user=postgres database=defectdojo SSL enabled (protocol=TLSv1.2, cipher=AES128-GCM-SHA256, bits=128, compression=off)
2023-10-04 19:44:04 UTC:10.237.120.220(56990):postgres@defectdojo:[19442]:LOG: disconnection: session time: 0:00:00.011 user=postgres database=defectdojo host=10.237.120.220 port=56990

日志中满是「连接接收→连接授权→断开连接」的流程,所有会话时长均不足1秒,询问该行为是否正常,是否是Postgres用户连接存在潜在问题的表现。

分析与结论
  • 这种短连接频繁创建销毁的行为不属于正常的高效数据库使用模式,通常是连接池配置缺失或失效导致的问题。
  • DefectDojo基于Django框架,默认数据库连接行为是每次请求创建新连接、请求结束后关闭连接。在无服务器Aurora场景下,这种模式会放大连接开销:一方面频繁的连接握手会增加数据库CPU负载,另一方面无服务器Aurora的连接数配额有限,大量短连接可能触发连接数阈值,导致后续请求失败。
  • 核心问题在于未启用数据库连接池:
    • 若使用容器化部署(如ECS/EKS),应在DefectDojo服务前或容器内配置连接池工具(如PgBouncer),复用已建立的数据库连接,避免频繁创建销毁。
    • 若使用AWS托管服务,可检查DefectDojo的Django配置,确认是否开启连接复用设置(如CONN_MAX_AGE参数,设置为大于0的值,让连接在指定时长内保持复用)。
  • 此外,无服务器Aurora本身对短连接容忍度较低,频繁连接会增加冷启动概率和延迟,建议优先通过连接池优化连接模式。

内容的提问来源于stack exchange,提问作者Simon Tower

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:45:57