我在 MacBook Pro 10,1 上安装了 Ubuntu 13.10。但是,安装后,kworker 进程消耗了超过 90% 的 CPU 使用率。我尝试了以下操作:
- (建议这个答案)执行
grep . -r /sys/firmware/acpi/interrupts/
以查看是否有任何 GPE 具有高值。 - (建议这个答案)下
sudo -s
,执行echo l > /proc/sysrq-trigger
并读取中的输出dmesg
。 - (建议这个答案)执行
sudo perf record -g -a sleep 10
并读取中的输出perf report
。
对于 1,gpe16
其值很高,并且一直在攀升。我尝试按照答案中的建议禁用 gpe16,kworker CPU 使用率降至 0.0%。
对于 2(未禁用gpe16
),dmesg
除启动时存在的信息外,不显示任何其他信息。
对于 3 (未禁用gpe16
),它以红色报告以下内容:
- 50.76% kworker/0:5 [kernel.kallsyms] [k] native_read_tsc
- native_read_tsc
- 64.72% delay_tsc
__const_udelay
+ gmux_index_wait_ready.isra.6
- 35.28% __const_udelay
+ gmux_index_wait_ready.isra.6
- 35.14% kworker/0:5 [kernel.kallsyms] [k] delay_tsc
- delay_tsc
- __const_udelay
- gmux_index_wait_ready.isra.6
- 59.84% gmux_index_write8
gmux_notify_handler
acpi_ev_notify_dispatch
acpi_os_execute_deferred
process_one_work
worker_thread
kthread
ret_from_fork
- 40.16% gmux_index_read8
gmux_notify_handler
acpi_ev_notify_dispatch
acpi_os_execute_deferred
process_one_work
worker_thread
kthread
ret_from_fork
问题:
- 什么是
gpe16
?我怎么知道为了 kworker 而禁用这个中断不会产生其他后果? - 可以从中收集哪些信息
perf report
? MacBook Pro 上的时间戳有什么关系吗?
答案1
当我的 CPU 使用率高得离谱时,似乎总是与 Python 相关的进程有关。每当它困扰我时,我都会在 (Gnome) 系统监视器中将其终止。
答案2
我知道这是一个老问题,但您可以尝试两件事。
htop
。这是 的替代方案top
。它添加了滚动和一些其他有用的功能,可以帮助您查看可能占用大量 CPU 的进程。- 系统监视器。这是一个内置应用程序,相当于 Ubuntu 中的 Windows 任务管理器。它可让您按不同内容进行排序并终止任务,全部以图形方式进行。
答案3
高 CPU 使用率很可能归因于 CPU/GPU 交互,这主要是由于合成和常用窗口管理器;启动时“开箱即用”运行 300 多个进程。作为替代方案,安装 openbox,它将成为您的窗口管理器。通过这样做,您可以将空闲状态中的 CPU 进程从大约 320-380 降至 ~250-290 或更低。您可以使用类似 Ubuntu 的桌面,只不过它将与 openbox 窗口管理器一起运行。
还要安装 gkrellm。它是 Bill Smith 及其公司编写和维护的实时系统监控应用程序。它实时读取内核的输出。您可以使用它监控系统进程并找出最适合您机器的进程。
这些图片是 gkrellm 的,展示了两个 dTop 环境中流程的差异。
Ubuntu 桌面环境严重依赖 Python。禁用它会导致错误输出。
祝你好运!不要加入黑暗势力!力量与 Ubuntu 同在!
答案4
这只是瞎猜,但我遇到过这种情况,lightdm 占用了 CPU 时间。我不得不降级到旧版本。这是前段时间的事了...