AWSで実行されているSQL-AlchemyベースのWebアプリケーションがあります。負荷テストSQL Alchemy:「TimeoutError:サイズ3のオーバーフロー0のキュープール制限に達し、接続タイムアウト、タイムアウト30」
webappには、Webリクエストを受け取り、共有データベースにクエリー/ライトするELBの背後にいくつかのc3.2xlarge
EC2インスタンス(それぞれ8CPU)があります。
私が使用しているデータベースは、タイプ:db.m4.4xlarge
のRDSインスタンスです。
SQLALCHEMY_POOL_SIZE = 3
SQLALCHEMY_MAX_OVERFLOW = 0
を高負荷の下では、私のアプリケーションは次のエラーを投げて開始します:
TimeoutError: QueuePool limit of size 3 overflow 0 reached, connection timed out, timeout 30
私が増加すると
マイSQL錬金術の設定は次のとおりですMariaDB 10.0.17
を実行していますSQLALCHEMY_POOL_SIZEが3から20の場合、エラーは同じ負荷テストで消えます。ここに私の質問があります:- 私のDBが処理できる合計同時接続数は?
Number of Number of EC2 instances * Number of Cores Per instance * SQLALCHEMY_POOL_SIZE
は質問1の回答を上回ることはできますが、上回ることはできません。- 私のような分散型WebアプリケーションのDB接続プールのサイズについては、他の制限事項も知りたいですか?