'top' 输出让我困惑

'top' 输出让我困惑
top - 18:22:21 up 98 days, 23:26,  4 users,  load average: 2.73, 2.85, 2.60 
Tasks: 210 total,   1 running, 209 sleeping,   0 stopped,   0 zombie 
Cpu(s):  3.6%us,  2.5%sy,  0.0%ni, 87.7%id,  5.1%wa,  0.0%hi, 1.1%si,  0.0%st 
Mem:  15067172k total,  8230892k used,  6836280k free,  1729472k buffers 
Swap:  1952764k total,        0k used,  1952764k free,  1947068k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
29512 root      20   0 6372m 3.0g  10m S   99 21.1  35:33.11 java      
4086 mysql     20   0 1692m 433m 7948 S   11  2.9  48:22.74 mysqld

为什么在一台空闲率为 87% 的机器上会出现 2 < 平均负载 < 3 的情况?

此外,java 和 mysql 进程总是占用 > 100% 的 CPU。

因此,有一个空闲指标(87.7%)和另外两个活动指标(平均负载和 CPU%)。为什么呢?

PS. 这是一个 8 核 CPU(或者 2 个四核 CPU,记不清了),并且这个 Linux 在某些虚拟化环境中运行。

答案1

top多核机器上的输出令人困惑。100% 代表完全使用单身的CPU。任何可占用多个内核的多线程进程都将显示为以 >100% 的速度运行。就您而言,由于您有 8 个内核,因此您可能会看到高达 800% 的使用率。

按下1top显示按核心划分的 CPU 使用情况。

平均负载是过去 1、5 和 15 分钟的平均负载。它按核心缩放。对于 8 核机器,平均负载小于 8 表示未充分利用。

对于 top 指示的使用量来说,2 到 3 之间的负载大约是正确的,而且在 8 核机器上肯定不用担心。

相关内容