aws
resource_error
ai_generated
true
FATAL: sorry, too many clients already (RDS Proxy connection limit exceeded)
ID: aws/rds-proxy-connection-limit-exceeded
80%Fix Rate
85%Confidence
1Evidence
2024-01-20First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| RDS Proxy 1.0.0 | active | — | — | — |
| PostgreSQL 13.7 | active | — | — | — |
| MySQL 8.0.33 | active | — | — | — |
Root Cause
The RDS Proxy has reached its maximum concurrent connections limit, often due to connection leaks or insufficient proxy capacity.
generic中文
RDS Proxy 已达到最大并发连接数限制,通常是由于连接泄漏或代理容量不足。
Official Documentation
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.htmlWorkarounds
-
85% success Increase the RDS Proxy's MaxConnectionsPercent in the proxy settings (console or CLI with 'aws rds modify-db-proxy --db-proxy-name myproxy --max-connections-percent 100'). This allows more connections proportional to the database instance's max_connections.
Increase the RDS Proxy's MaxConnectionsPercent in the proxy settings (console or CLI with 'aws rds modify-db-proxy --db-proxy-name myproxy --max-connections-percent 100'). This allows more connections proportional to the database instance's max_connections.
-
90% success Fix connection leaks in the application: ensure database connections are properly closed in all code paths (e.g., using connection pools with 'maxLifetime' and 'idleTimeout' settings). Implement a connection pool library like HikariCP (Java) or pgBouncer (PostgreSQL).
Fix connection leaks in the application: ensure database connections are properly closed in all code paths (e.g., using connection pools with 'maxLifetime' and 'idleTimeout' settings). Implement a connection pool library like HikariCP (Java) or pgBouncer (PostgreSQL).
中文步骤
在代理设置中增加 RDS Proxy 的 MaxConnectionsPercent(控制台或使用 CLI 'aws rds modify-db-proxy --db-proxy-name myproxy --max-connections-percent 100')。这允许代理根据数据库实例的 max_connections 按比例处理更多连接。
修复应用程序中的连接泄漏:确保在所有代码路径中正确关闭数据库连接(例如,使用连接池,设置 'maxLifetime' 和 'idleTimeout')。使用像 HikariCP(Java)或 pgBouncer(PostgreSQL)这样的连接池库。
Dead Ends
Common approaches that don't work:
-
60% fail
Increasing the database instance max_connections without adjusting RDS Proxy's MaxConnectionsPercent parameter still leaves the proxy as the bottleneck.
-
40% fail
Restarting the RDS Proxy doesn't solve the underlying issue of connection leaks from the application; connections will quickly exhaust the limit again.