我有一个在 Postgres 数据库上运行的应用程序,有时当我有大约 8-10 个人在处理该应用程序时,CPU 使用率飙升至 99-100%,该应用程序是基于 Codeigniter 框架构建的,我相信每次不需要时都关闭与数据库的连接,这可能是解决这个问题的方法。我将不胜感激任何建议。谢谢
基本上,人们在应用程序上所做的是运行插入查询,但速度非常快,一个人可以在一分钟内运行 70 到 90 个插入查询。
最佳答案
我遇到了类似的问题。原因是 - 一些交易长时间以来一直停滞不前。因此 CPU 利用率增加到 100%。以下命令有助于找出运行时间最长的连接:
SELECT max(now() - xact_start) FROM pg_stat_activity
WHERE state IN ('idle in transaction', 'active');
此命令显示连接已运行的时间量。这个时间不应超过一个小时。因此,终止运行了很长时间或卡在任何时候的连接对我有用。我关注了this发布监控和解决我的问题。 Post包括许多有用的命令来监视这种情况。
关于sql - Postgres 进程的高 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32175223/