1

我有一个对 RDS Postgres 数据库执行查询的 Web 应用程序。对于这个应用程序,我们使用基于 Trunk 的开发,我们的开发人员可以而且应该将任何东西master branch直接部署到生产环境中。白天,当我们在低工作负载下运行时,我们看不到数据库性能下降,但是在晚上(我们运营快递服务),当我们尝试巨大的工作负载时,我们可能会出现一些性能下降......

我的问题是:我应该如何监控这种行为?我不想在部署到生产之前强制运行压力测试。

我想要一个可以监视我们的数据库并通知如下的工具:“小心!您的数据库上有一个由 Pull Request 1234 引起的新查询(或慢查询)”。

4

2 回答 2

1

简单的解决方案是使用pg_stat_statements. 扩大。它可以一目了然地向您显示消耗最多运行时间的查询。

于 2019-02-04T07:27:43.417 回答
1

如果您使用的是 RDS for PostgreSQL 10,或者可以升级到该版本,则可以使用 Performance Insights 监控正在运行的实例,查看哪些查询在您的实例上产生负载,以及这些查询处于什么等待状态。您可以在此处查找更多信息:https ://aws.amazon.com/rds/performance-insights/

全面披露:我是 Amazon Aurora PostgreSQL 的产品经理,它是第一个支持 Performance Insights 的数据库引擎。

于 2019-02-03T13:53:18.310 回答