Zep*_*dio 6 postgresql amazon-ec2
我们正在运行一个大约 38GB 的 Postgres 数据库,托管在一个 68GB 的 EC2 实例上。它一直在嗡嗡作响,负载约为 0.7(在 8 核机器上)并且 CPU 使用率很少,直到大约 16 小时前,当时 CPU 使用率在几个小时内上升,现在比以前高得多(大约 20 %),平均负载也相应增加(现在在 5 到 8 之间)。
根据 pg_stat_activity 的数据,这台机器可以同时看到 100 到 300 个连接。我们最大的表大约 9.0GB,包括索引。
以下是我们排除的情况:
关于如何进行或追踪此问题的任何想法?
小智 9
如果可以,请在短时间内(约 10 分钟)打开完整日志记录。保存日志,并让 pgfouine ( http://pgfouine.projects.postgresql.org/ ) 对其进行分析。可能您执行的查询比以前更多,或者您执行的查询效率不高。
接下来,您可能会有一些缓慢的查询严重影响事情。看看现在正在运行哪些查询:
SELECT pg_stat_activity.procpid AS pid, pg_stat_activity.usename AS username, pg_stat_activity.waiting, now() - pg_stat_activity.query_start AS age, pg_stat_activity.current_query AS query
FROM pg_stat_activity
WHERE pg_stat_activity.current_query <> '<IDLE>'::text
ORDER BY now() - pg_stat_activity.query_start DESC;
在列表顶部查找查询。是否已经运行了很长时间?如果您的交易已经打开了 16 个小时以上,它肯定会减慢很多速度。