AWS RDS Postgres 性能问题

Neo*_*Neo 2 postgresql python django amazon-web-services

我们使用实例类型为 db.m4.2xlarge 的 rds(postgres)。

通常大多数时候连接数是8-10。但在某些情况下随着连接数增加到100-200。DB 变得无响应。在数量或读取连接突然激增的情况下,我们多次看到数据库无响应(因此即使连接从 10 增加到 100)。

正在执行的查询最多需要 2 秒才能执行。

我的应用程序服务器在 django/python 堆栈上运行(使用 Gunicorn)。当数据库服务器响应时间增加时,这些服务器的延迟会变高。

为了提高性能,我们应该对 postgres rds 的配置进行任何更改(目前大多数设置都是默认的)?

小智 5

我也有同样的问题。postgresql 设置在 AWS RDS 上,即使在增加实例后,CPU 利用率仍为 100%。我使用此处显示的方法进行了调试,其中一种方法对我有用。

我检查了运行时间最长的查询,发现某些查询被卡住并且运行了超过 3-4 小时。要检查查询运行了多长时间,请运行以下命令:

SELECT max(now() - xact_start) FROM pg_stat_activity
                               WHERE state IN ('idle in transaction', 'active');
Run Code Online (Sandbox Code Playgroud)

如果超过一个小时,那就是问题所在。终止长时间运行的连接并限制应用程序端连接的最大寿命。