感谢您查看此内容。
jonathan@melange:~$ top
top - 05:21:08 up 44 min, 2 users, load average: 1.21, 1.68, 1.98
Tasks: 351 total, 2 running, 349 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.3 us, 14.0 sy, 2.1 ni, 70.4 id, 8.9 wa, 0.0 hi, 0.3 si, 0.0 st
GiB Mem : 15.579 total, 0.173 free, 4.141 used, 11.264 buff/cache
GiB Swap: 15.910 total, 15.868 free, 0.042 used. 11.014 avail Mem
PID PPID UID USER RUSER TTY TIME+ %CPU %MEM S COMMAND
67 2 0 root root ? 22:22.40 100.0 0.0 R kworker/0:1
设置 - ubuntu 16.10。 4.8.0-41-通用。基于现代英特尔的笔记本电脑,带有 Nvidia 驱动程序和不太完美的 wifi。请告诉我,我可以为您提供您需要的任何信息。我的这些工作可以接受,我看不出有任何理由相信这些涉及到这个问题。
事实上,上周我已经在askubuntu 上问过这个问题,并且在 Freenode`#ubuntu 上问过几次,但没有人会回答我的问题:(
我已经拿了一些性能报告
sudo perf record -a -g sleep 10
sudo perf report
有了一些结果
Samples: 92K of event 'cycles:ppp', Event count (approx.): 58330337004406
Children Self Command Shared Object Symbol ◆
+ 94.27% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry ▒
+ 94.27% 0.00% swapper [kernel.kallsyms] [k] start_secondary ▒
+ 77.29% 0.00% swapper [kernel.kallsyms] [k] schedule_preempt_disabled ▒
- 77.29% 77.29% swapper [kernel.kallsyms] [k] __schedule ▒
77.29% start_secondary ▒
cpu_startup_entry ▒
- schedule_preempt_disabled ▒
- 77.29% schedule ▒
__schedule ▒
+ 77.29% 0.00% swapper [kernel.kallsyms] [k] schedule ▒
+ 16.99% 0.00% swapper [kernel.kallsyms] [k] call_cpuidle ▒
+ 16.99% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter ▒
+ 16.99% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter_state ▒
- 16.99% 16.99% swapper [kernel.kallsyms] [k] intel_idle ▒
16.98% start_secondary ▒
cpu_startup_entry ▒
call_cpuidle ▒
- cpuidle_enter ▒
- 16.98% cpuidle_enter_state ▒
intel_idle ▒
+ 5.65% 0.00% pool [unknown] [.] 0000000000000000 ▒
+ 5.65% 5.65% pool libc-2.24.so [.] re_compile_internal ▒
+ 5.65% 0.00% pool [unknown] [.] 0x00007f049804d628 ▒
+ 5.65% 0.00% pool [unknown] [.] 0x00007f049804d6a8 ▒
+ 5.65% 0.00% pool [unknown] [.] 0x00007f049804d3d8 ▒
+ 5.65% 0.00% pool [unknown] [.] 0x00007f049804d768 ▒
Cannot load tips.txt file, please install perf!
我检查了 dmesg、过热消息(这就是我在这里的原因)以及有关 MSFT0101:00 的其他一些消息,我认为这些消息与内核无法识别我的 BIOS 启用的 TPM 模块有关。我思考这在这件事上应该是微不足道的。
$ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
$ cat /sys/kernel/debug/tracing/trace_pipe > out.txt
(wait a few secs)
^C
但这不起作用!
jonathan@melange:~$ sudo mount -t debugfs nodev /sys/kernel/debug
mount: nodev is already mounted or /sys/kernel/debug busy
jonathan@melange:~$ sudo echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
bash: /sys/kernel/debug/tracing/set_event: Permission denied
jonathan@melange:~$ sudo cat /proc/67/stack
[<ffffffffffffffff>] 0xffffffffffffffff
有任何想法吗?!
更新
在提交这个问题之前我一直在使用Kworker,它是什么?为什么它占用如此多的 CPU?作为参考。因此,我尝试禁用/卸载长时间运行的进程,例如 dropbox、insync(谷歌驱动器)、crashplan、keybase、Variety 背景、多重加载指示器、psensor、guake。 (我觉得大多数时候我的设置都非常流畅......)但似乎没有任何帮助。
还有其他问题潜伏着,暗示 wifi、nvidia 驱动程序或 USB 驱动程序出现故障。但我的日志中也没有任何内容表明这一点。值得庆幸的是,解决方案几乎总是简单地找到更新的 nvidia 驱动程序、更新内核或“处理它”。我的笔记本电脑已经是最新版本了,我没有企业理由继续使用 16.04,而且我已经激活了 nvidia ppa,就像英特尔驱动程序一样,所以这没有太大帮助。
也许 kworker 实际上是笔记本电脑过热 -> cpu 节流 + cpu 风扇管理的结果。不是原因。正如建议的防止CPU过热所以我只是使用一些压缩空气来清理风扇(我认为这对于一台只有 9 个月大的笔记本电脑来说不会是一个问题,但实际上有一点灰尘)并调查了 heat-conf.xml,其中表明风扇在 55°C 时启动(尽管仍在研究我可以在这里做什么)
认为这实际上可能是解决方案。很快就会回来报告。
更新2
因此,进行 Acer BIOS 更新完全破坏了与我的安全启动设置相关的所有内容,并损坏了 efi 文件,因此我花了几天时间才弄清楚如何重新生成 ubuntu efi 密钥以及 Windows efi 密钥。
我尝试清理灰尘,这两天确实有帮助,直到我开始解决 BIOS 问题。
但 kworker 又回来了(是的,据我所知,它是一样的)。我现在还掌握了更多信息。我可以看到CPU并没有降低,而是保持在最大值。风扇正在运转,但设备温度仅在 60 度左右,因此我不会将此称为严重过热。
来自其他线程的命令需要提升到 root 用户,而不仅仅是使用 sudo。所以 sudo su 然后获取堆栈跟踪给出以下内容。
[<ffffffff98a9dcea>] worker_thread+0xca/0x500
[<ffffffff98aa40d8>] kthread+0xd8/0xf0
[<ffffffff992a071f>] ret_from_fork+0x1f/0x40
[<ffffffffffffffff>] 0xffffffffffffffff
看起来对我来说不是特别有帮助。
很久以后....
我看到这个答案仍然有很多人浏览,所以我想我应该添加我记得的其他发生的事情。我运行一台配备 Nvidia GPU 的 Aspire V 15 Nitro 592G 笔记本电脑。 wifi 不稳定,麦克风无法工作,Nvidia 驱动程序导致 gnome shell 和显示器反复崩溃等等。这不是最好的 ubuntu 机器,尽管它在工作时非常强大。老实说,我现在运行的是 Ubuntu 17.10,但在让这台机器工作时我仍然遇到重大问题。
我在评论中写道,清洁风扇似乎有帮助。这确实让事情变得更安静了。但我怀疑它实际上是以下内容的组合:
- Tracker(全文搜索守护进程)-> 疯狂的资源占用
- 当时的wifi驱动程序太糟糕了
- 品种(壁纸切换器)+ 双显示器 + nvidia + gnome shell -> 不可靠的显示器设置和 gnome shell 上的大量内存泄漏,
- multiload shell 扩展也是一个内存泄漏
我意识到这对解决不同问题的新用户没有帮助。也许有一天,事情会更容易诊断,直到那时;祝你好运!
答案1
这个问题似乎被放弃了,因为它不再更新了,但无论如何我都会尝试一下:我见过很多发生过度中断的情况,从而减慢了机器的速度。这可以用 来验证grep . -r /sys/firmware/acpi/interrupts/
。
有关的: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/887793 https://bugzilla.kernel.org/show_bug.cgi?id=53071 https://forum.ubuntuusers.de/topic/kworker-cpu-load/(德语)
答案2
我相信通过/sys/kernel/debug/tracing/set_event
以 root 身份操作可以轻松解决“权限被拒绝”错误。
另一个想法是弄清楚你的问题是否从一开始就存在,或者是什么触发了它。在第一种情况下,最简单的方法是在禁用大多数驱动程序的情况下启动,然后逐一重新启用它们以找到罪魁祸首。
如果有什么事情触发了这个问题,我们必须知道它是什么。我见过一些由磁盘 IO 激增引发 CPU 使用率过高的情况,调整/proc/sys/vm/
与缓存相关的参数有很大帮助。