Postgres 100%CPU。高写/读操作计数率

时间:2016-02-24 11:54:10

标签: postgresql

我在使用DB(托管在Amazon RDS上)时遇到了一些问题,有时会发生100%的CPU消耗并且所有选择的查询都变得很慢。图表上还有一个奇怪的细节:每秒的写入操作比每秒的读取操作大得多,但pg_stat_activity仅返回select个查询,没有createupdate或{ {1}}(delete)查询。

问题是:每秒度量标准值的高写入操作的原因是什么?此度量标准是否包含CUD个查询的索引(重建)操作?为什么我在CUD结果中看不到CUD个查询?

enter image description here

1 个答案:

答案 0 :(得分:3)

两个指标(高CPU,写入次数比读取次数多)可能不相关(两个图表之间似乎没有相关性)。

复杂的选择查询可能导致CPU利用率过高,尤其是在存在大量内存中排序或过滤的情况下。如果没有请求的详细信息,很难说出正在发生的事情。

写入次数多于读取可能仅意味着数据集被有效缓存,因此不需要从磁盘读取任何数据。

请注意,pg_stat_activity只会为您提供活动快照。可能存在写入请求太短而无法在快照中看到它们。此外,一些SELECT查询实际上可能导致写入(典型示例是对nextval的调用)。也可能有日志写入磁盘!