SuperAPI AI 工具集

connection-pooling

通用与其它

查看项目

更新于 10-16 08:09

技能介绍

用途:这是一个针对高性能异步 Python 应用的连接池技能,用于配置和调优数据库(asyncpg、SQLAlchemy Async)与 HTTP(aiohttp)连接池,并诊断连接耗尽或泄漏问题。

主要能力:一是数据库连接池配置,涉及 pool_size、max_overflow、pool_pre_ping、pool_recycle、pool_timeout、command_timeout 等参数,以及 asyncpg create_pool 的 min_size、max_size、max_inactive_connection_lifetime 与 setup 回调。二是 HTTP 会话池配置,使用 aiohttp 的 TCPConnector 设置 limit、limit_per_host、keepalive_timeout、DNS 缓存与 ClientTimeout。三是池监控,示例用 prometheus_client 采集池大小、空闲连接等指标。四是疑难排查,覆盖连接耗尽、陈旧连接、连接泄漏等症状与修复思路。

使用方式:在应用启动时创建池并在请求间复用,例如 FastAPI 中通过 lifespan 建立 app.state.db_pool 与 http_session,并在关闭时调用 close。资料强调不要为每次请求创建引擎、连接池或 ClientSession。

调优参考:给出不同规模服务的参数建议对照表,以及粗略的池大小估算公式;并列出禁止的反模式,如过大的 pool_size、未关闭池、pool_pre_ping=False 时未缩短 pool_recycle 等。

限制:该资料未给出具体版本兼容性、安装命令、依赖清单与性能基准,具体取值需结合实际负载与数据库上限确认。