2
我有一個在AWS中運行的基於SQL-Alchemy的Web應用程序。負載測試SQL Alchemy:「TimeoutError:QueuePool限制大小3溢出0到達,連接超時,超時30」
該Web應用程序在ELB後面有幾個c3.2xlarge
EC2實例(每個8個CPU),它們接受Web請求,然後查詢/寫入共享數據庫。
我正在使用的數據庫是和RDS實例類型:db.m4.4xlarge
。 它運行MariaDB的10.0.17是
我的SQL鍊金術設置如下:
SQLALCHEMY_POOL_SIZE = 3
SQLALCHEMY_MAX_OVERFLOW = 0
在高負載下,我的應用程序啓動時拋出了以下錯誤:
TimeoutError: QueuePool limit of size 3 overflow 0 reached, connection timed out, timeout 30
當我增加SQLALCHEMY_POOL_SIZE從3到20,相同的負載測試錯誤消失。這裏是我的問題:
- 我的數據庫可以同時處理多少個連接?
- 公平地假設
Number of Number of EC2 instances * Number of Cores Per instance * SQLALCHEMY_POOL_SIZE
可以達到但不能超過問題1的答案嗎? - 我是否需要知道任何其他約束DB連接池 大小的分佈式Web應用程序,如我的?