Linux kworker 占用CPU过高

2022-11-08 16:39:55 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

先打开HTOP

代码语言:javascript复制
htop

然后按H K(大写)

我们看到Kworker/0:0 events占用了大量CPU,下面参考下人家的回答

什么是kworker? kworker表示进行“工作”(处理系统调用)的Linux内核进程。在进程列表中可以有多个:kworker/0:1在第一个CPU内核上kworker/1:1是一个,在第二个CPU内核上是一个,依此类推。 为什么kworker占用您的CPU?要找出kworker浪费您CPU的原因,您可以创建CPU回溯:观察您的处理器负载(有top或没有),并在高负载kworker时执行,echo l > /proc/sysrq-trigger以创建回溯。(在Ubuntu上,这需要您使用登录sudo -s)。这样做几次,然后在dmesg输出结束时观察回溯。查看CPU回溯中经常发生的情况,希望它可以指出问题的根源。

安装perf

代码语言:javascript复制
sudo dnf install perf.aarch64 #我用的华为云鲲鹏arm的,自行修改

记录所有CPU上10S回溯记录

代码语言:javascript复制
sudo perf record -g -a sleep 10

然后会在当前目录下生成一个perf.data

用以下命令查看

代码语言:javascript复制
sudo perf report

我们看到arch_cpu_idle占用大量CPU。于是问了Fedora telegram群里的,翻了下arch/arm64/kernel/process.c

结论居然根本没有其他进程在使用CPU,Linux会自动保存CPU运作。(以后我会把博客转到自己的网站上zhyz.ru)

doesn’t this mean that simply no other process is using the CPU? from what I see, this is like the “Idle task” in Windows

补充:不知道是不是BUG现在2个线程都满了。

参考:https://askubuntu.com/questions/33640/kworker-what-is-it-and-why-is-it-hogging-so-much-cpu

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

0 人点赞