为什么 kworker cpu 使用率这么高?

为什么 kworker cpu 使用率这么高?

我最近在三星笔记本电脑上安装了 Ubuntu 12.04 和 Windows 7。每当我使用 Ubuntu(即使空闲时)时,kworker 都会使用 8 个内核中的一个的近 90%。尽管它并没有真正影响我的使用,但它让我感到烦恼,我担心它可能会损坏我的处理器。我甚至尝试安装另一个 Linux 发行版(Linux Mint),但 kworker 也导致了同样的问题。所以我不知道该怎么办。非常感谢您的帮助。

在此处输入图片描述

答案1

相反,我认为这种 CPU 使用率不正常并且与众所周知的 kworker 错误有关: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/887793

对于我和许多其他人来说,解决方案是首先找出导致问题出现的“gpe”,方法如下:

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

并检查高值(我的是 gpe13 - 其值类似于 200K - 因此,如果不同,您必须相应地更改它)。之后:

~ 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 --

答案2

CPU 使用率似乎正常,只有 1 个 CPU(CPU1)使用率较高。总共有 3 个进程处于运行状态,其中两个是 kworker 和 gnome-system-mo(您在 top 命令屏幕短片中添加的前 2 个进程)。

“kworker” 是内核工作线程的占位进程,它为内核执行大部分实际处理,尤其是在有中断、计时器、I/O 等的情况下。这些通常对应于分配给正在运行的进程的绝大部分“系统”时间。它不是可以以任何方式安全地从系统中删除的东西,并且与 nepomuk 或 KDE 完全无关(除了这些程序可能会进行系统调用,这可能需要内核执行某些操作)

有关 kworker 的更多信息,请查看以下链接:-KWorker 是什么以及它的重要性

答案3

我昨天安装了 Linux Mint 17,今天晚上发现 kworker 占用了 4 个 CPU 中的一个的 100%。我进行了上述检查,但没有发现中断为 0 以外的任何内容。

在检查我通常运行的服务时,我注意到关闭 nfs 服务器会使 kworker 线程恢复为零。重新启动 nfs 服务器并不能解决问题。

我发现这个错误报告(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1322407),这表明类似的 nfs 服务器问题已在内核 3.13.0-32.57 中得到修复。Mint 17 上的最新更新似乎正在运行内核 3.13.0-24-generic,因此我运行的内核中没有修复程序。我不知道这是否会对其他人有所帮助,但我系统地转到每台 nfs 客户端计算机并执行了“umount -a -t nfs”,然后等待看它是否有任何效果。我发现似乎是导致问题的客户端,因为在我卸载后,kworker 降为零。我重新安装了客户端上的 nfs 共享“mount -a -t nfs”,问题没有再次出现。

相关内容