首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何最好地管理高PostgreSQL CPU的使用?

如何最好地管理高PostgreSQL CPU的使用?
EN

Server Fault用户
提问于 2011-02-24 23:43:24
回答 5查看 31.1K关注 0票数 4

我正试图修复一个高PostgreSQL CPU使用问题。我们使用的是PostgreSQL 8.0.9,当我们的JEE应用程序(在JBoss中)在某些负载增加的情况下使用时,top显示PostgreSQL的进程增长缓慢。当出现问题时,大约有12-15个PostgreSQL进程在进程信息的最右边显示SELECT,每个进程大约有6-7%的CPU使用率,然后应用程序会慢很多。

JBoss版本: JBoss (MX MicroKernel) 4.0.3

操作系统: CentOS Linux5.5

内核和CPU: Linux2.6.18-194.26.1.el5在x86_64上

处理器信息:2 x Intel(R) Xeon(R) CPU E5420 @ 2.50GHz,8核

目前,我们的想法是在它上投入更多的硬件。如果我们这样做,最好的选择是像下面的选项A或选项B?

选项A: 4×AMD™6100系列处理器,每个处理器有12个核心

备选方案B: 4个Intel Xeon 7500系列处理器,每个处理器有8个核心

假设使用CentOS 8.0.9的PostgreSQL Linux5.5将按比例增加这许多处理器和内核(Ex ),这是正确的。4个处理器,每个处理器有12个核)?在向它投入更多硬件方面,我还有什么要考虑的吗?

EN

回答 5

Server Fault用户

发布于 2011-02-25 08:40:29

这个问题是不可能回答的,我们不知道发生了什么。你说的是12到15个连接,几乎什么都没有。但是,当执行非常复杂的查询或使用糟糕的数据库模式、缺少索引等时,cpu的使用率随时可能上升。

版本8.0.9是严重的问题,8.0是EOL在2010年10月和最新的修复版本8.0.26 (4年后的8.0.9)。您至少应该对此版本进行更新,以修复8.0中的许多错误。

开始记录查询,使用EXPLAIN查看查询计划,查看真空,您可能也需要重新索引。目前,您的硬件看起来很好,您首先必须找到问题的根源。

考虑雇佣一个PostgreSQL dba几天。

票数 4
EN

Server Fault用户

发布于 2011-02-25 00:13:12

如果您显示的CPU使用率很高,可能是由于查询速度慢。我建议在postmaster.conf中启用缓慢的查询日志功能,并检查所需的查询时间比应该使用的时间长。

也有可能是I/O绑定的,因为缓慢的磁盘很容易导致查询开始备份。我建议安装htop并检查您的CPU等待时间的百分比归因于iowait。

除此之外,我高度鼓励升级到最新版本。自8.0以来,性能出现了一些巨大的改进,当前的稳定版本(在撰写本文时为9.0.x)提供了更多的EXPLAIN VERBOSE ANALYZE查询信息。

一般来说(以及所有其他条件相同),当您添加核心时,PostgreSQL扩展得非常好(每个额外的核心在性能上增加了大约96%的增益(从理论上的100%性能增益中,每个额外的核心可能增加))。

然而,我最初的直觉是,你的磁盘无法跟上。

票数 2
EN

Server Fault用户

发布于 2011-02-25 03:35:32

我想你会从这本书PostgreSQL 9.0高性能中受益。它有PDF格式(即时下载),也有死树格式。

我们刚刚用本书中的建议重建了我们的数据库。我们的新数据库盒把旧的一个吹走了,而且我们不必花很多钱去做它。有些章节专门针对你的每一个问题。有答案,但更好的是,也有方法(你如何衡量你的硬件知道它有多快?)

我不是Postgresql专家,但我将告诉您关于硬件和Postgresql的知识。你的里程可能会不同。

一般来说,对于我有经验的数据库,比CPU的数量和速度更重要的是:

  • 有足够的内存。数据库就像酒鬼一样喝着记忆。
  • I/O带宽数据库喜欢I/O。

您可以通过RAID获得I/O带宽。RAID10为大部分Postgresql数据做得很好。驱动器越多,性能越好。如果可以的话,将xlog放在另一个设备上。那个可以是RAID1。使用带有电池支持缓存的硬件RAID卡将给您最好的性能。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/240204

复制
相关文章

相似问题

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