当我启动 intellij 时,它会在启动时加载一个“haxe”项目,有时会发生 intellij 挂起加载的情况。然后我用“sudo”启动 htop(也试过 top)。iotop 也没有显示任何有趣的内容。
我可以看到我的一个 CPU 的使用率为“100%”(通常情况并非如此),但是 htop 没有显示任何使用该 CPU 的进程。
一个 CPU 使用率为 100% 的信息来自 htop。
还有什么会占用 100% 的 CPU 时间?我该如何找到它?
编辑
我收集了更多信息,vmstat 10 10(问题发生时)的输出是这样的:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
8 0 0 12013656 285632 2150392 0 0 63 47 71 244 5 1 93 1 0
11 0 0 12009724 285664 2150384 0 0 0 14 737 1238 6 4 90 0 0
11 0 0 11994592 285680 2150364 0 0 0 6 720 990 6 3 91 0 0
11 0 0 11994516 285704 2150364 0 0 0 12 689 610 6 3 91 0 0
11 0 0 12000456 285736 2150360 0 0 0 12 709 702 6 3 91 0 0
11 0 0 12000696 285760 2150364 0 0 0 22 696 630 6 3 91 0 0
11 0 0 12008016 285784 2150364 0 0 0 13 728 784 6 3 91 0 0
11 0 0 12008356 285816 2150356 0 0 0 232 678 924 6 3 90 0 0
11 0 0 12007908 285840 2150400 0 0 0 15 628 548 6 3 91 0 0
11 0 0 11998248 285872 2150392 0 0 0 35 978 1432 11 4 84 0 0
我还跑了:
ps -e -o state,pid,cmd | grep ^D
但输出是空的。
和
ps -e -o state,pid,cmd | grep \^R
返回:
R 1705 /usr/bin/gnome-shell
R 7113 zsh
R 7466 ps -e -o state,pid,cmd
(即使重复多次也不会改变)
答案1
Ubuntu 内核团队有一个 wiki,解释了如何识别耗电应用程序。这可能有一些有用的想法或技巧来调试你的这个问题。
看:https://wiki.ubuntu.com/Kernel/PowerManagement/IdentifyingIssues
top 是一款有用的工具,可用于查看 CPU 消耗最多的进程,但它无法轻松发现短暂的进程或创建后很快死亡的线程。对于这类消耗 CPU 的进程,我开发了 forkstat 来尝试追踪它们。它在 Ubuntu 的最新版本中可用,或者您可以从 ppa:colin-king/white 下载它(参见http://kernel.ubuntu.com/~cking/forkstat/)
答案2
我最近遇到了这个问题。我发现这是由 microSD 的 SD 适配器引起的。当我插入带有两个分区(一个 8GB vfat 和一个 24GB ext2)的 32GB SDHC U1 Samsung microSD 时,Lubuntu 无法检测和安装该设备。在 top/lxtask 中,我没有看到任何使用 CPU 的进程,但是我的 CPU 使用率稳定在 100%。当卡被移除时,CPU 会降至 0%。