ダッシュボードには、現在DBインスタンスへの22のオープン接続があり、エラーで新しい接続をブロックしています:
残りの接続スロットは、レプリケーション以外のスーパーユーザー接続用に予約されています。
EC2インスタンスで実行されているWebサービスAPIからDBにアクセスし、常に次のベストプラクティスを維持します。
Connection connection = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
Class.forName(DB_CLASS);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(SQL_Query_String);
...
resultSet.close();
statement.close();
connection.close();
コードで他に何かできますか?
DB管理で何か他のことをすべきですか?
定期的に接続を閉じる方法はありますか?
Amazonは、特定の量のメモリと接続を要求する各モデルの権利に基づいて、接続数を設定する必要があります
MODEL max_connections innodb_buffer_pool_size
--------- --------------- -----------------------
t1.micro 34 326107136 ( 311M)
m1-small 125 1179648000 ( 1125M, 1.097G)
m1-large 623 5882511360 ( 5610M, 5.479G)
m1-xlarge 1263 11922309120 (11370M, 11.103G)
m2-xlarge 1441 13605273600 (12975M, 12.671G)
m2-2xlarge 2900 27367833600 (26100M, 25.488G)
m2-4xlarge 5816 54892953600 (52350M, 51.123G)
ただし、必要に応じて、最大接続サイズをカスタム値に変更できます
RDSコンソール>パラメーターグループ>パラメーターの編集から、
Max_connectionsパラメーターの値をカスタム値に変更できます。
接続を定期的に閉じるには、cronジョブを次のように設定できます。
select pg_terminate_backend(procpid)
from pg_stat_activity
where usename = 'yourusername'
and current_query = '<IDLE>'
and query_start < current_timestamp - interval '5 minutes';
rDSインスタンスのParameters Group
の最大接続数を変更できます。増やしてみてください。または、最大接続が{DBInstanceClassMemory/31457280}
に設定されているため、インスタンスのアップグレードを試みることができます
http://docs.aws.Amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
Amazon RDS、SCALA、Postgresql&Slickを使用しています。まず第一に-RDSで利用可能な接続の数は利用可能な量に依存します[〜#〜] ram [〜#〜]-すなわちRDSインスタンスのサイズ。 デフォルトの接続番号を変更しないが最適です。
RDS DBインスタンスで次のSQLステートメントを実行することにより、最大接続数を確認できます。
show max_connections;
SPRING構成を確認してスレッド数生成しています:
database {
dataSourceClass = org.postgresql.ds.PGSimpleDataSource
properties = {
url = "jdbc:postgresql://test.cb1111.us-east-2.rds.amazonaws.com:6666/dbtest"
user = "youruser"
password = "yourpass"
}
numThreads = 90
}
すべての接続作成済みブート時初期化 RDS制限を超えないように注意してください。これには、DBに接続する他のサービスが含まれます。この場合、接続の数は90以上になります。
Db.t2.smallの現在の制限は198(4GBのRAM)です