Postgres 9.0 锁定,100% CPU

Postgres 9.0 锁定,100% CPU

我们遇到了一个问题,我们的 Postgres 9.0 服务器偶尔会锁定并终止我们的 Web 应用程序。重新启动 Postgres 即可解决该问题。

以下是我观察到的情况:

  • 首先,一个 CPU 的使用率在几分钟内跃升至 100%
    • 在此期间,磁盘操作降至~0
    • 数据库操作降至 0(每秒块和元组数)
    • 此期间的日志显示:
      • 警告:工人启动时间过长;已取消
      • 警告:工人启动时间过长;已取消
      • 日志中没有查询(仅记录超过 200 毫秒的查询)
    • 在之前或期间没有记录异常长时间运行的查询
  • 然后第二个 CPU 跳到 100%
    • Postgres 进程的数量从通常的 8-10 个增加到 20 个左右
    • 与每秒 Postgres 块数的激增相匹配(约为正常情况下的两倍)
    • 日志显示
      • 日志:无法接受 SSL 连接:检测到 EOF
      • 查询正在运行但速度很慢
  • 重新启动 postgres 一切恢复正常

设置:

服务器:亚马逊 EC2 大型
Ubuntu 10.04.2 LTS
Postgres 9.0.3
专用数据库服务器

有人知道这是什么原因造成的吗?或者有人建议我还应该检查什么吗?

答案1

确保不会耗尽内存并导致磁盘抖动问题。

如果您有足够的开放内存,那么请直接进入 PostgreSQL 并查找有问题的查询。

SELECT * FROM pg_stat_activity;

相关内容