【问题标题】:High CPU Usage By Postgres ProcessPostgres 进程的 CPU 使用率高
【发布时间】:2015-08-24 05:52:17
【问题描述】:

我有一个在 Postgres 数据库上运行的应用程序,有时当我有大约 8-10 人在使用该应用程序时,CPU 使用率飙升至 99-100% 之间,该应用程序是基于我相信的 Codeigniter 框架构建的每次不需要时都关闭与数据库的连接,有什么办法可以解决这个问题。我将不胜感激任何建议。谢谢

基本上,人们在应用程序上所做的是运行插入查询,但速度非常快,一个人可以在一分钟内运行 70 到 90 个插入查询。

【问题讨论】:

  • 如果您正在运行大量微小的插入并且您拥有快速的存储空间,因此瓶颈是内存/CPU,这并不特别令人惊讶。你正在做很多工作,所以有很多负担。有什么问题?

标签: sql postgresql codeigniter cpu-usage


【解决方案1】:

我遇到了类似的问题。原因是 - 一些交易长期以来一直卡住并运行。因此 CPU 利用率提高到 100%。以下命令有助于找出运行时间最长的连接:

SELECT max(now() - xact_start) FROM pg_stat_activity
                           WHERE state IN ('idle in transaction', 'active');

此命令显示连接已运行的时间量。这个时间不应超过一个小时。因此,终止运行了很长时间或在任何时候卡住的连接对我有用。我关注了this 的帖子来监控和解决我的问题。 Post 包含许多有用的命令来监控这种情况。

【讨论】:

  • 嗨 Ajeet,就我而言,最大事务时间为 10 分钟,CPU 消耗约为 95%,有什么建议来分析问题吗?
【解决方案2】:

您需要了解 PostgreSQL 在做什么。相关资源:

一旦您发现使用了最慢或最常见的查询,use EXPLAIN 以确保它们得到有效执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 2010-09-08
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多