为什么 Linux 中 top 报告的 CPU 使用率超过 100%?

ton*_*sid 64 linux cpu-usage process top ubuntu-10.04

我已经看到 CPU 使用率超过 100%。这怎么可能?是不是因为我有四个 CPU 核心,所以 100% 不是真的最大值?

另外,当程序执行此操作时,除了使用k命令之外,我还能在顶部做什么?

laj*_*tte 70

AFAIK top 显示与 1 个核心的功率相关的 CPU 使用率,即如果您的任务占用 200% CPU,则它占用了两个核心。


Ian*_*anH 18

从顶部手册页

   k: %CPU  --  CPU usage
  The task's share of the elapsed  CPU  time  since  the  last  screen
  update,  expressed as a percentage of total CPU time.  In a true SMP
  environment, if 'Irix mode' is Off, top will operate  in  number  of
  CPUs.  You toggle 'Irix/Solaris' modes with the 'I' interactive com-
  mand.
Run Code Online (Sandbox Code Playgroud)

所以,是的,top 显示每个内核的 CPU 百分比,但是您可以通过按“I”来切换此行为。


pri*_*eta 10

是的,如果 top 中的进程超过 100% 或 top 显示 >1.0 的负载,这意味着有多个核心被占用,或者系统被超额订阅。超额订阅意味着有更多的工作要放在核心上,而不是物理上可管理的。

top你还可以按不同的参数视图(如使用的内存)。如果您想查看可以排序的内容,请参阅 的帮助或手册页top

您还可以查看有关进程本身的所有类型的信息,例如进程使用的虚拟内存或常驻内存,以及它是处于睡眠状态还是当前正在运行,以及使用的 CPU 时间。

如果需要,还可以通过uptime命令查看顶部的平均负载。

  • 如何检查它是否使用了多个核心或是否超额订阅?谢谢! (4认同)