gpt4 book ai didi

postgresql - 谷歌云 PostgreSQL : Utilization remains at 100%

转载 作者:行者123 更新时间:2023-12-04 13:02:44 27 4
gpt4 key购买 nike

我正在使用 CPU 利用率为 100% 的 Google Cloud PostgreSQL。我已将实例升级为使用 2 个内核。现在该实例在 2 个 CPU 和 3.75Gb 的 RAM 上运行。该实例仍然使用 100% 的 CPU 资源。同样,我已将实例升级到 6 核和 12Gb 内存,但 CPU 利用率仍然没有变化。以下是一些统计指标:
Transition

Read/write

CPU

我想知道为什么会发生这种情况,我该如何找出解决方案?
我检查了在 PostgreSQL 上运行的查询数量。查询次数小于100,执行时间小于30秒。 PostgreSQL 版本是 9.6

最佳答案

我现在每天都在做这个,我将分享我如何调试这个问题。
首先,安装 extension pgstatstatements所以它将存储在服务器上执行的所有 SQL 语句的所有执行统计信息。
之后就很简单了...
此查询将显示最“昂贵”的查询:

SELECT substring(query, 1, 50) AS short_query,
round(total_time::numeric, 2) AS total_time,
calls,
round(mean_time::numeric, 2) AS mean,
round(max_time::numeric, 2) AS max_time,
round((100 * total_time / sum(total_time::numeric) OVER ())::numeric, 2) AS percentage_cpu,
query
FROM pg_stat_statements
ORDER BY total_time DESC LIMIT 10
这个用于重置统计信息,当您想要调试特定时间段时很有用: SELECT pg_stat_statements_reset()为了查看服务器上当前正在运行哪些查询:
SELECT user, pid, client_addr, query, query_start, NOW() - query_start AS elapsed
FROM pg_stat_activity
WHERE query != '<IDLE>'
-- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1
ORDER BY elapsed DESC;
如果您有更好的调试性能的方法,请告诉我!
此外,如果一些 GCP 工程师正在阅读本文,请启用更多指标,以便我们能够跟踪问题。服务器上的示例进程 CPU 可以判断哪个 DB/Schema 占用过多 CPU。
编辑:
谷歌发布 query insights当您不想弄脏手时,它很有用!
我还是用pgstatstatements!

关于postgresql - 谷歌云 PostgreSQL : Utilization remains at 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51598653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com