Ubuntu 18.04 /w Macbook Pro:Kworker 一直占用我的 CPU

Ubuntu 18.04 /w Macbook Pro:Kworker 一直占用我的 CPU

我只是想提出一个问题,因为这个问题似乎已经存在很长一段时间了。

刚才我在 Macbook Pro 上安装了新的 Ubuntu 18.04,我注意到 kworker 占用了大量 CPU:

3411 root      20   0       0      0      0 R  84,4  0,0   6:12.23 kworker/0:0

以下是有关我的设置的一些其他信息:

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04 LTS
Release:        18.04
Codename:       bionic

uname -a

Linux MacbookPro 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

现在我在 Google 上搜索了这个问题的答案,实际上找到了很多。这个帖子中的答案对我有用:为什么 kworker cpu 使用率这么高?

我所要做的就是禁用它gpe06,这样占用大量 CPU 的 kworker 进程就消失了。首先,我查找导致高 CPU 负载的 gpe:

grep . -r /sys/firmware/acpi/interrupts/

然后浏览列表并找到占用资源的 gpe 并将其禁用:

cp /sys/firmware/acpi/interrupts/gpe06 /root/gpe06.backup
echo "disable" > /sys/firmware/acpi/interrupts/gpe06

我的问题是,当我启动机器时,该死的 kworker 又开始运行了。我知道每次我都可以手动禁用它,但想知道是否有更好的解决方案?我尝试按照上面链接的 Ask Ubuntu 线程中的说明进行操作,但它似乎是关于如何在启动时运行它的过时指南。

那么,我该如何使其成为永久解决方案,以便我不必在每次启动笔记本电脑时禁用 gpe06?

答案1

根据这个 :https://www.reddit.com/r/Ubuntu/comments/7uwz3r/1604_lts_vs_1710_on_2015_macbook_pro/dto1mtb/

以下“技巧”对我来说很有效(同一台机器,同一问题,同一 gpe):

sudo -s
crontab -e

并在末尾添加以下行:

@reboot echo disable > /sys/firmware/acpi/interrupts/gpe06

答案2

我在一台旧的 Macbook 2006 上运行 Lubuntu 20.10、5.8 内核时遇到了同样的问题。在我的例子中,解决方案是使用启动参数屏蔽 gpe17

acpi_mask_gpe=0x17我向 GRUB添加了启动参数并重新启动。

添加acpi_mask_gpe=0x17/etc/default/grub行 GRUB_CMDLINE_LINUX_DEFAULT,然后运行update-grub并重新启动。

这解决了 CPU 利用率过高的问题。

我发现这个命令存在问题: grep . -r /sys/firmware/acpi/interrupts/

问题: /sys/firmware/acpi/interrupts/gpe17: 3491042 EN enabled unmasked

相关内容