【问题标题】:PostgreSQL make CPU Usage 100%?PostgreSQL 让 CPU 使用率达到 100%?
【发布时间】:2019-11-05 00:35:23
【问题描述】:

我在我的WPF Application 中使用PostgreSQL

有时PostgreSQL 会使 CPU 使用率高达 100%。

我多次遇到这个问题,但我不知道原因。

任务管理器中的截图如下

请注意,当出现此错误时,我会杀死我的应用程序 exe,然后等待 5 分钟,但任务管理器中的状态仍然没有改变。 CPU 仍然 100%

我明白了,它通常发生在窗口更新之后。我必须重新启动计算机才能绕过这个。

我正在使用PostgreSQL 9.3

任何人都可以告诉我解决此问题的方法。

谢谢你:)

【问题讨论】:

  • 发生这种情况时您是否正在运行查询?
  • 是的,我的应用程序经常运行查询,所以我认为此时也不例外。

标签: c# wpf cpu-usage postgresql-9.3


【解决方案1】:

如果您仍然能够访问 postgres,我会查看的一件事是您是否有任何可能被挂断的查询

SELECT
  pid,
  now() - pg_stat_activity.xact_start AS duration,
  query,
  state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '4 minutes';

如果确实有一个查询的存活时间超过了应有的时间,那么您 可以这样删除:

SELECT pg_cancel_backend(<pid>);

这可能不是问题,但它至少会减少可能性的数量。

【讨论】:

  • 谢谢你,我会尽力让你知道结果:)
【解决方案2】:

如果您在数据库中不使用索引,大多数情况下都会出现问题,请对经常使用的字段使用索引,特别是如果您使用“order by”或聚合(例如 sum 和 count)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2015-07-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    相关资源
    最近更新 更多