首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PostgreSQL失控了:高cpu负载,高内存消耗。

PostgreSQL失控了:高cpu负载,高内存消耗。
EN

Server Fault用户
提问于 2018-07-10 12:05:14
回答 1查看 12.3K关注 0票数 1

我使用的是PostgreSQL 9.2.32,它与Plesk一起安装在CentOS 7上,有非常少量的表(表也很小),Vapor 3作为后端。

几个小时后,我的服务器内存不足,因为PostgreSQL和我不知道为什么和如何分析这种行为。

此外,PostgreSQL有一个非常高的cpu负载。

代码语言:javascript
运行
复制
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                      
 4192 postgres  20   0  434784   9956   1176 S 400.0  0.2 262:06.80 pgsrv                                                                                                                        
 2641 postgres  20   0  226292   9080   7976 S   0.0  0.1   0:00.12 postgres                                                                                                                     
 2642 postgres  20   0  192604   1524    440 S   0.0  0.0   0:00.00 postgres                                                                                                                     
 2644 postgres  20   0  226392   2952   1824 S   0.0  0.0   0:00.00 postgres                                                                                                                     
 2645 postgres  20   0  226292   1968    856 S   0.0  0.0   0:00.03 postgres                                                                                                                     
 2646 postgres  20   0  226292   1896    784 S   0.0  0.0   0:00.03 postgres                                                                                                                     
 2647 postgres  20   0  227120   2996   1216 S   0.0  0.0   0:00.06 postgres                                                                                                                     
 2648 postgres  20   0  194856   1796    588 S   0.0  0.0   0:00.10 postgres                                                                                                                     
 3881 postgres  20   0  227612   5896   3624 S   0.0  0.1   0:00.00 postgres                                                                                                                     
 3897 postgres  20   0  228260   7980   5428 S   0.0  0.1   0:00.05 postgres  

以下是服务器停止工作前几分钟的行:

代码语言:javascript
运行
复制
postgres  20   0 8488060   2,9g   2588 S   0,3 47,9   1:42.40 ps3351955702

如果有人有解决这个问题的主意,那就太好了。

编辑: pg_stat_activity的输出

代码语言:javascript
运行
复制
1   16458   test_lmmaps 3881    16460   lmmaps      139.xx.xx.xx    null    49526   2018-07-10T10:37:10.999Z    null    2018-07-10T10:37:11.246Z    2018-07-10T10:37:11.246Z    false   idle    SELECT * FROM "fluent" WHERE ("fluent"."name" = $1) LIMIT 1 OFFSET 0
2   16458   test_lmmaps 3897    16460   lmmaps      139.xx.xx.xx    null    49542   2018-07-10T10:38:51.000Z    null    2018-07-10T12:08:51.078Z    2018-07-10T12:08:51.080Z    false   idle    INSERT INTO "locations" ("longitude", "id", "createdAt", "latitude", "tourID", "loadno", …
3   12924   postgres    6900    16460   lmmaps      46.xx.xx.xx     null    56518   2018-07-10T12:14:21.512Z    null    2018-07-10T12:14:23.465Z    2018-07-10T12:14:23.466Z    false   idle    EXPLAIN SELECT * FROM pg_stat_activity ;
4   12924   postgres    6901    16460   lmmaps      46.xx.xx.xx     null    56519   2018-07-10T12:14:24.745Z    2018-07-10T12:14:24.796Z    2018-07-10T12:14:24.796Z    2018-07-10T12:14:24.796Z    false   active  SELECT * FROM pg_stat_activity
EN

回答 1

Server Fault用户

发布于 2018-07-10 12:40:48

丹尼尔的评论可能是对的:看起来有人滥用你的系统。

一些一般的Postgres性能/稳定性提示,供通过Google登陆这里的人使用:

  1. 在postgresql.conf中,可以为各种函数设置内存预留量。研究这个文件,看看是否需要修改一些值。恐怕我不能确切地告诉您要更改什么,这取决于您的系统和应用程序。
  2. Postgresql 9.2很老了。有一个版本11,更新的版本通常具有更好的性能和稳定性。
  3. 记录缓慢的查询。在pg_log中查看什么是慢查询,并检查是否有一个表需要额外的索引。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/920277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档