William Asked: 2018-03-30 10:58:21 +0800 CST2018-03-30 10:58:21 +0800 CST 2018-03-30 10:58:21 +0800 CST 为什么 htop 在打开时会射到 100% CPU? 772 每当我打开htop时,它会显示单核 CPU 使用率突然飙升至 100%。我认为收集统计数据htop不是那么密集吗? 为什么会htop突然出现这个尖峰? htop 1 个回答 Voted Best Answer ErikF 2018-03-30T11:49:31+08:002018-03-30T11:49:31+08:00 您会看到程序看到其加载资源使用情况的副作用。将可执行文件及其库加载到内存中、初始化并将控制权交给程序并不是一项免费操作:它涉及 CPU、内存和(如果尚未缓存)磁盘。 这是top在启动时立即显示它的用法: top - 13:21:29 up 1 day, 23:31, 1 user, load average: 1.73, 1.78, 1.46 Tasks: 151 total, 3 running, 93 sleeping, 0 stopped, 0 zombie %Cpu(s): 16.4 us, 5.7 sy, 0.0 ni, 73.1 id, 4.6 wa, 0.0 hi, 0.2 si, 0.0 st KiB Mem : 3967564 total, 135908 free, 2053480 used, 1778176 buff/cache KiB Swap: 8388604 total, 8332796 free, 55808 used. 1652564 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 896 qemu 20 0 1961872 508076 6144 S 100.0 12.8 790:22.87 /usr/bin/qemu-system-x86_64 -name guest=Gentoo-amd64,debug-threads=on + 596 qemu 20 0 2326244 863164 4488 R 6.2 21.8 311:23.29 /usr/bin/qemu-system-x86_64 -name guest=data,debug-threads=on -S -obje+ 12655 root 20 0 49732 4164 3432 R 6.2 0.1 0:00.01 top -d 10 1 root 20 0 49568 5492 3700 S 0.0 0.1 0:02.52 /lib/systemd/systemd --switched-root --system --deserialize 32 10 秒后(对于较小的时间段也是如此,但我希望能够在启动时复制文本): 896 qemu 20 0 1961872 508076 6144 R 103.5 12.8 790:33.23 /usr/bin/qemu-system-x86_64 -name guest=Gentoo-amd64,debug-threads=on + 596 qemu 20 0 2326244 863164 4488 R 8.7 21.8 311:24.16 /usr/bin/qemu-system-x86_64 -name guest=data,debug-threads=on -S -obje+ 10200 root 20 0 1354396 131740 29824 S 3.1 3.3 13:05.97 python2.7 /usr/share/virt-manager/virt-manager 10150 root 20 0 66548 6004 4880 S 2.6 0.2 8:22.49 sshd: root@pts/0 850 qemu 20 0 1726656 300432 5496 S 0.8 7.6 19:30.70 /usr/bin/qemu-system-x86_64 -name guest=distcc-i686,debug-threads=on -+ 328 avahi 20 0 53744 3608 2936 S 0.2 0.1 0:10.93 avahi-daemon: running [server-calgary.local] 460 root 20 0 0 0 0 S 0.1 0.0 0:04.87 [nfsd] 475 root 20 0 1282444 13820 8268 S 0.1 0.3 1:13.16 /usr/sbin/libvirtd --listen 9143 root 20 0 0 0 0 I 0.1 0.0 0:36.05 [kworker/1:1] 10146 root 20 0 0 0 0 I 0.1 0.0 0:25.93 [kworker/0:2] 12641 root 20 0 0 0 0 I 0.1 0.0 0:00.02 [kworker/u4:0] 12655 root 20 0 49732 4176 3432 R 0.1 0.1 0:00.02 top -d 10 1 root 20 0 49568 5492 3700 S 0.0 0.1 0:02.52 /lib/systemd/systemd --switched-root --system --deserialize 32 top真的使用 6.2% 的 CPU 来完成它的工作吗?不:这是所有程序在启动时都会进行的加载工作。程序稳定下来后,使用率下降到 0.1%。 不太可能htop使用 100% 的 CPU(那里可能存在错误),但在启动时它的使用率更高也就不足为奇了。
您会看到程序看到其加载资源使用情况的副作用。将可执行文件及其库加载到内存中、初始化并将控制权交给程序并不是一项免费操作:它涉及 CPU、内存和(如果尚未缓存)磁盘。
这是
top
在启动时立即显示它的用法:10 秒后(对于较小的时间段也是如此,但我希望能够在启动时复制文本):
top
真的使用 6.2% 的 CPU 来完成它的工作吗?不:这是所有程序在启动时都会进行的加载工作。程序稳定下来后,使用率下降到 0.1%。不太可能
htop
使用 100% 的 CPU(那里可能存在错误),但在启动时它的使用率更高也就不足为奇了。