由于某种原因,我的“top”命令显示的 CPU 平均值是错误的。比如每次 CPU 使用率都是 100%,但实际上 CPU 是 100% 空闲的。
这是 Raspberry 3,运行 Fedora 28。CPU 温度低于 46C,因此 CPU 确实处于空闲状态。最近几个月没有更换硬件。
知道为什么吗?
top - 21:47:52 up 1:02, 1 user, load average: 4.00, 4.00, 4.00
Tasks: 139 total, 1 running, 84 sleeping, 0 stopped, 1 zombie
%Cpu0 : 0.5 us, 0.5 sy, 0.0 ni, 95.0 id, 0.0 wa, 4.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.5 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 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
KiB Mem : 996680 total, 210940 free, 294880 used, 490860 buff/cache
KiB Swap: 249852 total, 249852 free, 0 used. 680308 avail Mem
如您所见,CPU 空闲了一段时间,但是:
load average: 4.00, 4.00, 4.00
在 4.00 版中,这个问题在 4 CPU 机器中得到了修复。
使用iostat
显示正确的 CPU 负载平均值 (~99% 空闲)。
答案1
感谢 launchpadmcquak (关联):
找到了。5.0.x 内核中的 vhciq 驱动程序似乎存在一个错误:
https://github.com/raspberrypi/linux/issues/2881
恢复到 4.x 内核似乎可以解决这个问题。
https://koji.fedoraproject.org/koji/buildinfo?buildID=1231413
几天前我的内核更新了,重启后问题就出现了。
Removed:
kernel.armv7hl 4.20.15-100.fc28
kernel-core.armv7hl 4.20.15-100.fc28
kernel-modules.armv7hl 4.20.15-100.fc28
Installed:
kernel.armv7hl 5.0.5-100.fc28
kernel-core.armv7hl 5.0.5-100.fc28
kernel-modules.armv7hl 5.0.5-100.fc28