gpt4 book ai didi

linux - %CPU 列和负载在顶部

转载 作者:IT王子 更新时间:2023-10-29 01:19:51 25 4
gpt4 key购买 nike

我的一个 C++ 应用程序在顶部显示了非常高的 %CPU,但负载却很低。myapp 总是占用大约 30%,显示在“top”命令的最顶部,但负载总是像 0.00,所以我很困惑负载和 %CPU 列之间有什么区别?

top - 14:09:54 up 62 days,  2:52,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni, 99.3%id, 0.3%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 2054824k total, 1440364k used, 614460k free, 4644k buffers
Swap: 4194296k total, 16604k used, 4177692k free, 610784k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14774 root 20 0 1201m 9416 1856 S 28.3 0.5 376:13.50 myapp
14746 mysql 20 0 2012m 157m 3888 S 0.3 7.8 5:01.08 mysqld

谁能告诉我 %CPU 和负载之间的区别?

提前致谢!

最佳答案

例如 top 中显示的

%CPU 是瞬时的,即当时正在使用什么,而 显示的 load>正常运行时间是一个平均值:

It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.

来自 Wikipedia .

随着时间的推移,这些应该会收敛,但是当 %CPU 最大为 100% 时,负载可能高于 1,尽管有进程在等待。例如:

For example, one can interpret a load average of "1.73 0.50 7.98" on a single-CPU system as:

during the last minute, the CPU was overloaded by 73% (1 CPU with 1.73 runnable processes, so that 0.73 processes had to wait for a turn)

during the last 5 minutes, the CPU was underloaded 50% (no processes had to wait for a turn)

during the last 15 minutes, the CPU was overloaded 698% (1 CPU with 7.98 runnable processes, so that 6.98 processes had to wait for a turn)

更新:

我现在才注意到您的进程使用了​​ 28% 的 CPU,而 top 报告两个 CPU 都处于 >99% 的空闲状态。我无法在我的 Linux 系统(Ubuntu 12.04、Intel i7-3770K 四核 HT)上重现这一点,请参见下面的屏幕截图。

正常设置,无负载,显示所有内核的平均 CPU 使用率:

top - 18:10:04 up  7:50,  2 users,  load average: 0.00, 0.05, 0.15
Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16528224k total, 1124956k used, 15403268k free, 148772k buffers
Swap: 15624188k total, 0k used, 15624188k free, 670460k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7022 root 20 0 0 0 0 S 0 0.0 0:00.14 kworker/0:1
1 root 20 0 3640 2060 1324 S 0 0.0 0:01.23 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.14 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0

一个核心上的满负载(运行 yes >/dev/null),显示所有核心的平均 CPU 使用率:

top - 18:11:58 up  7:52,  2 users,  load average: 0.11, 0.07, 0.15
Tasks: 157 total, 2 running, 155 sleeping, 0 stopped, 0 zombie
Cpu(s): 12.5%us, 0.0%sy, 0.0%ni, 87.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16528224k total, 1124880k used, 15403344k free, 148824k buffers
Swap: 15624188k total, 0k used, 15624188k free, 670472k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8254 tim 20 0 4188 280 228 R 100 0.0 0:04.88 yes
1 root 20 0 3640 2060 1324 S 0 0.0 0:01.23 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.15 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0

与 2) 相同,但显示每个内核的 CPU 使用情况:

top - 18:13:47 up  7:54,  2 users,  load average: 0.86, 0.36, 0.24
Tasks: 157 total, 2 running, 155 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16528224k total, 1124756k used, 15403468k free, 148840k buffers
Swap: 15624188k total, 0k used, 15624188k free, 670472k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8254 tim 20 0 4188 280 228 R 100 0.0 1:53.98 yes
1 root 20 0 3640 2060 1324 S 0 0.0 0:01.23 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.15 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0

N.B.: 我确实注意到第一个统计数据 top 显示的不是 yes 的 100% cpu 使用率,类似于您的情况有。也许这就是问题所在?

关于linux - %CPU 列和负载在顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12319894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com