首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么/proc/pid/stat的和CPU大于/proc/stat

为什么/proc/pid/stat的和CPU大于/proc/stat
EN

Unix & Linux用户
提问于 2019-01-16 16:04:07
回答 1查看 1K关注 0票数 0

/proc/<pid>/stat中,我为所有进程添加了用户cpu、系统cpu、子用户和子系统cpu。我从以前的样本中取了一个三角图。

在我将用户、/proc/stat和系统CPU之和之后,这应该是整个机箱的总和。我再来一次三角洲。

来自进程的总和几乎总是略大于整个处理器的总和,我不知道为什么。

EN

回答 1

Unix & Linux用户

发布于 2019-01-17 17:11:57

有几个原因可以解释为什么会是这样,最明显的一个原因是,每个过程的会计使用不同的逻辑来计算不同的事情。

两个具体例子:

  1. system stat有一个nice列,它计算用户在漂亮任务上花费的时间(较低的优先级)--您没有指定使用它,所以我猜您没有加起来。在此过程中,这将被计算为标准的用户时间。
  2. iowait时间--也是您没有考虑的时间--很可能在流程stat中被计算为系统时间。但是,在iowait时间中计算也是个坏主意,因为它对实际时间的计算非常不可靠,正如man proc所解释的:

iowait (自从Linux2.5.41) (5)等待I/O完成的时间。此值不可靠,原因如下:

  1. CPU不会等待I/O完成;iowait是任务等待I/O完成的时间。当CPU进入空闲状态以执行未完成的任务I/O时,将在此CPU上调度另一个任务。
  2. 在多核CPU上,等待I/O完成的任务不在任何CPU上运行,因此每个CPU的功耗很难计算。
  3. 在某些条件下,这一领域的价值可能会下降。

最后,我必须指出,我相信这类会计是没有用的,因为它永远不可能准确到足以达到任何严重的目的-系统和处理计数器是在系统的不同部分为不同的目的处理的,而且永远无法与任何有用的程度相匹配。

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

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

复制
相关文章

相似问题

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