AWS RDS(Postgres):最大连接数

时间:2017-10-04 13:41:04

标签: postgresql amazon-web-services amazon-rds gatling

我正致力于调整AWS RDS(Postgres)性能。

使用当前设置(默认),

db.t2.micro

max_connections:{DBInstanceClassMemory / 31457280} // =>大约34个连接

我使用Gatling运行了性能测试,有100个并发请求(一个请求一个连接)。报告显示,78个成功请求,22个请求失败。

我几乎没有问题:

1 /当max_connections为34时,RDS如何支持多达78个连接?

2 /当请求数超过max_connections时,有没有动态的方法来调整max_connections?

注意:我知道如何通过硬编码更改max_connections的值。

1 个答案:

答案 0 :(得分:0)

1)在任何时间点,如果并发连接数> max_connections,RDS将针对新请求响应"too many connections"错误,直到它能够释放已存在的连接。服务器拒绝任何过多的连接尝试。因此,当您使用Gatling运行性能测试时,请检查数据库( 登录Postgres sql并使用查询检查 ),建立多少个连接来处理请求。

2)就动态更改max_connections参数而言,max_connection是Postgres中的静态参数,这意味着在该参数生效之前需要重新启动数据库实例。但在MySQL中,它是一个动态参数。我建议您不要考虑在生产环境中动态修改此参数值的这种方法。但是如果你真的想动态地改变它以用于测试目的,你可以尝试下面的(未经测试的)方法:

  1. 创建具有条件的云观察警报MaxDbConnection dbconnections> 25(以t2.micro为例)。

  2. 专门为上述警报创建一个SNS主题并将其添加到下面 MaxDbConnection闹钟的操作部分。

  3. 创建一个lambda函数并选择上面创建的SNS主题 它的触发器。

  4. 在lambda函数中,您可以编写一个逻辑来使用modify-db-parameter-group方法使用您的任何sdk修改max_connection参数 选择。此外,验证是否应用了更改 DescribeDBParameters方法。