我有一个Web应用程序,可以对RDS Postgres数据库执行查询。对于此应用程序,我们使用基于Trunk的开发,我们的开发人员可以并且应该将master branch
上的任何内容直接部署到生产中。白天,当我们在低负载下运行时,我们看不到数据库的任何性能下降,但是在晚上(我们运行快递服务)时,当我们尝试巨大的工作负载时,我们可能会出现性能下降... >
我的问题是:我应该如何监视这种行为? 在部署到生产环境之前,我不想强加压力测试。
我想拥有一个可以监视我们的数据库并通知如下信息的工具:“保重!您的数据库中有一个由Pull Request 1234引起的新查询(或慢速查询)”。
答案 0 :(得分:1)
简单的解决方案是使用pg_stat_statements
。延期。它可以一目了然地向您显示消耗最多运行时间的查询。
答案 1 :(得分:0)
如果您使用的是RDS for PostgreSQL 10,或者可以升级到该版本,则可以使用Performance Insights监视正在运行的实例,查看哪些查询在您的实例上产生负载,以及哪些等待状态表明这些查询在。您可以在这里找到更多信息:https://aws.amazon.com/rds/performance-insights/
全面披露:我是Amazon Aurora PostgreSQL的产品经理,这是第一个支持Performance Insights的数据库引擎。