在 AWS 的 RDS Instance ,不同方案 CPU跟記憶體 都有差別,因此在預設時,都會針對主機規格幫你配置好可負載的人數,避免Instance崩壞,通常可以針對你的網站預估同時在線人數來推估適用的方案。
首先,先說明關於 RDS 針對使用者連線相關的配置參數。
用戶相關的配置有以下兩個:
- max_connections: 可以設定最大使用者連線數目
- max_user_connections: 設定最大允許使用者數
當主機 process 數過多,超過 RDS Instance 連線負載時,就會出現以下錯誤
production.ERROR: SQLSTATE[HY000] [1040] Too many connections
AWS 各個 RDS Instance 的 max_connections 通常是依照 Instance 的記憶體來做對應配置,以下是各個型別的配置值:
AWS MySQL
DB Instances | max_connections |
---|---|
t2.micro | 45 |
t2.small | 150 |
t2.medium | 312 |
t2.large | 648 |
m3.medium | 296 |
m3.large | 609 |
m3.xlarge | 1237 |
m4.large | 648 |
m4.xlarge | 1320 |
r3.large | 1258 |
r3.xlarge | 2540 |
m2.xlarge | 1412 |
m3.2xlarge | 2492 |
AWS PostgreSQL
DB Instances | max_connections |
---|---|
db.r4.large | 1600 |
db.r4.xlarge | 3200 |
db.r4.2xlarge | 5000 |
db.r4.4xlarge | 5000 |
db.r4.8xlarge | 5000 |
db.r4.16xlarge | 5000 |
也可以透過DB直接查詢
show variables like "max_connections";
至於 AWS RDS Instance 的 max_user_connections ,應該預設都為 0 (無限制)