在 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 (無限制)