为什么我看到一个进程的CPU使用率很高,但总体CPU空闲百分比很高?

时间:2018-07-28 09:12:33

标签: linux performance cpu-usage

这是一个8核计算机。 %Cpu(s)-> id为99.4,但是一个Java进程已经占用了82.7%的CPU使用率。

“顶部”输出如下:

top - 09:04:09 up 17:22,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 142 total,   1 running,  74 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.3 st
KiB Mem : 62876640 total,  9865752 free, 51971500 used,  1039388 buff/cache
KiB Swap:        0 total,        0 free,        0 used. 10121552 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 4859 root      20   0   50.1g  49.4g 144356 S  82.7 82.4  20:28.62 java
 3847 root      20   0    6452    792    716 S   0.3  0.0   0:09.50 rngd
    1 root      20   0   43724   5680   4196 S   0.0  0.0   0:02.30 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd

3 个答案:

答案 0 :(得分:0)

请检查您的使用情况,具体取决于您的使用情况,正在运行的服务或应用(Eclipse,Android Studio,JBoss Server等)。

答案 1 :(得分:0)

通常,CPU尝试在其内核之间分配功能/进程,以完成多任务处理。因此,特定的过程可以占用其中一个核心的很大一部分,但是其他核心和CPU则无法处理巨大的负载。

BR

答案 2 :(得分:0)

答案:

我们有cpu = 8核

从顶部开始,我们有: 进程cpu_usage = 82.7% 闲置= 99.4%id

看!让我们计算

8个核心在完全使用时给出= 800%,

因此CPU使用率%=> [82.7 / 800] * 100%= 10.3%(计算得出)

cpu闲置百分比= 100-10.3 = 89.7%(已计算)

与89.7%的89.7%略有不同,但会 给你一种味道

我想你的主要困惑大约是82.7%。

82.7%并不意味着所有CPU使用率达到82.7%。如果您的cpu有1个核心,那将是这样。对于多核CPU 100%的使用率意味着仅一个核就处于100%繁忙状态 并非所有的CPU。