我最近在我的三星笔记本上安装了Ubuntu 12.04,与Windows 7共存。每当我使用Ubuntu时(即使它空闲),kworker使用几乎占据了其中一个8核的90%。尽管这并不真正影响我的使用,但这让我很困扰,我担心它可能会损坏我的处理器。我甚至尝试安装另一个Linux发行版(Linux Mint),结果kworker引起了同样的问题。所以我不知道该怎么办。非常感谢你的帮助。
我认为这个CPU使用率并不正常,与众所周知的kworker bug有关: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/887793
对于我和其他很多人来说,解决方法首先是找出导致问题的"gpe",可以通过以下方式进行:
grep . -r /sys/firmware/acpi/interrupts/
~ cp /sys/firmware/acpi/interrupts/gpe13 /pathtobackup
~ crontab -e
@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe13
~ touch /etc/pm/sleep.d/30_disable_gpe13
~ chmod +x /etc/pm/sleep.d/30_disable_gpe13
~ vim /etc/pm/sleep.d/30_disable_gpe13
添加这些内容:
#!/bin/bash
case "$1" in
thaw|resume)
echo disable > /sys/firmware/acpi/interrupts/gpe13 2>/dev/null
;;
*)
;;
esac
exit $?
保存/退出,完成。
已测试并在以下设备上工作:
Ubuntu 12.10 on Samsung Chronos 7 series - Model no. NP700Z7C --
Ubuntu 16.04.2 on Clevo - Model no. P650RS --
phc-intel
软件包解决了这个问题。 - Yusuf
gpe06:94815545
和gpe17:10621
,在禁用gpe06
之后,kworker不再出现在CPU使用列表的顶部,然后我甚至可以看到电池电量指示器增加了剩余电池使用时间。 - Armando Pérez Marquéshtop
。如果我使用top
,我会看到kworker
占用了我的 CPU。使用htop
的问题在于它不会显示当前正在运行的任务中的kworker
! - Mareckyecho "disable" > /sys/firmware/acpi/interrupts/gpe13
不能停止kworker进程(可以在另一个终端窗口使用命令top
来检查kworker是否停止),那么可能需要以sudo权限运行它。如果这个单独的命令可以正常工作,那么请使用sudo crontab -e
来执行剩下的指令,否则无法生效(至少对我来说是这样)。 - jonahenomodeset
启动并使用命令行下载专有的 nvidia 驱动程序。重启后,问题得到解决。 - Samleo