首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么顶部命令显示>80% CPU空闲时间,而单个进程使用>80% CPU?

问为什么顶部命令显示>80% CPU空闲时间,而单个进程使用>80% CPU?
EN

Unix & Linux用户
提问于 2020-11-19 10:39:10
回答 1查看 3.9K关注 0票数 0

请看下面的截图。这个值突出显示在80 %到95 %之间。

如您所见,postgres进程占用了所有CPU。但是,用户进程百分比仅为5%。事实上,大部分CPU被认为是空闲的。Google上的仪表板还说,这台机器的CPU最多是空闲的。

我在这里收集了信息,Linux“top”命令:我们是什么,sy,ni,id,wa,hi,si和st(用于CPU的使用)?

在这里:https://scoutapm.com/blog/understanding-linuxs-cpu-stats

后一个消息来源特别指出,数据库是“用户空间”部分的一部分。如何解释这种差异呢?它与不同的CPU核心有关吗?

更新

执行1命令后按下top将显示每个核心的cpu使用情况:

有18人(!)CPU核心。正如你所看到的,其中一个完全被postgres吃掉了,但剩下的却是空的。我要理解的是,top命令中列出的%CPU只显示单个核所需的时间吗?从我找到的消息来源来看,这一点对我来说并不清楚。

采取一种更面向解决方案的方法:增加更多的核心不会有任何作用。相反,扩展运行postgres进程的CPU大小可能会降低它使用的CPU百分比?

EN

回答 1

Unix & Linux用户

发布于 2020-11-19 14:11:24

如您所见,postgres进程占用了所有CPU。

不,它占用了一个CPU核心--这是Unix/Linux下100%的意思。即使这样也不精确。

您的postgres进程可能有两个活动线程,每个线程占用两个不同的CPU核心的50%,top / ps将报告100%。

它与不同的CPU核心有关吗?

是。

正如你所看到的,其中一个完全被postgres吃掉了,但剩下的却是空的。

在你的截图中有两个繁忙的CPU核心,一个88%,另一个9%。它们的总和接近于您的占卜者使用的值。

增加更多的核心不会有任何作用。

然而,这取决于您的特定情况,无论您运行的是什么工作负载,它都受到单线程CPU性能的限制,所以您是正确的。

相反,扩展运行postgres进程的CPU大小可能会降低它使用的CPU百分比?

我不知道你是什么意思。

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

https://unix.stackexchange.com/questions/620446

复制
相关文章

相似问题

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