如何找出内核/kworker CPU 使用率高的原因?

如何找出内核/kworker CPU 使用率高的原因?

有时内核会占用 40-50% 的 CPU,导致其他程序出现延迟。发生这种情况时,输出iotop如下所示:

Total DISK READ :       2.96 K/s | Total DISK WRITE :    1552.86 K/s
Actual DISK READ:       2.96 K/s | Actual DISK WRITE:     103.72 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                      
17631 be/4 root        0.00 B/s    0.00 B/s  0.00 %  6.99 % [kworker/5:2]
15770 be/4 root        0.00 B/s    0.00 B/s  0.00 %  6.96 % [kworker/5:0]
21092 be/4 root        0.00 B/s    0.00 B/s  0.00 %  4.50 % [kworker/7:3]
23201 be/4 root        0.00 B/s    0.00 B/s  0.00 %  4.48 % [kworker/7:2]
19368 be/4 root        0.00 B/s    0.00 B/s  0.00 %  3.07 % [kworker/4:0]
20876 be/4 root        0.00 B/s    0.00 B/s  0.00 %  3.05 % [kworker/4:3]
14505 be/4 fabian      0.00 B/s    2.96 K/s  0.00 %  2.47 % cinnamon --replace
 9172 be/4 root        0.00 B/s    0.00 B/s  0.00 %  1.77 % [kworker/1:1]
 4149 be/4 root        0.00 B/s    0.00 B/s  0.00 %  1.76 % [kworker/1:3]
14752 be/4 root        0.00 B/s    0.00 B/s  0.00 %  1.25 % [kworker/2:2]
15418 be/4 root        0.00 B/s    0.00 B/s  0.00 %  1.24 % [kworker/2:0]
23131 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.73 % [kworker/0:3]
22790 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.73 % [kworker/0:2]
  236 be/3 root        0.00 B/s 1229.84 K/s  0.00 %  0.13 % [jbd2/sda2-8]
 1625 be/4 fabian      2.96 K/s  308.20 K/s  0.00 %  0.12 % firefox-esr [Cache2 I/O]
22086 be/4 fabian      0.00 B/s    0.00 B/s  0.00 %  0.01 % java -Xss1M -Djava.library.path=/home/f~ng --versionType release [Render thread]

(然后是一堆 0.00% 的东西)

这告诉我这个CPU使用率是由系统的大量“IO”引起的,这是相当模糊和不具体的。同样奇怪的是“总磁盘写入”比“实际磁盘写入”多得多。是否有类似“不是实际的磁盘写入,只是开玩笑”之类的内容?

但更重要的是:如何详细了解 CPU 使用率过高的原因?是什么促使这些kworker人做这么多工作?

当然,我也尝试简单地查看任务管理器,它没有列出任何 kworkers,而top,它确实列出了一些,但显示它们的 CPU 使用率非常低。 (我只得到提示,内核 CPU 使用率很高,因为CPU使用率显示小程序内核有专用的颜色。)
当时不使用交换,RAM、SSD 使用和上传+下载没什么了不起的。
我已经几乎排除了与 WLAN、LAN、蓝牙、第二个屏幕、显卡(大约使用了 12%)、后台运行的其他程序以及其他地方建议的其他一些内容的关系(我不知道)通过禁用它们来记住所有这些)。我也不使用任何奇特的设置,例如 RAID,它只是一台运行 Debian 9.11(Linux 内核 4.9.0-11-amd64)的笔记本电脑。
编辑/proc/sys/vm/drop_caches根据这个答案让人感觉内核使用这么多 CPU 的时间现在更短了,但我不确定,它也没有告诉我原因。请告诉我这是否出于某种原因是一个可怕的想法,因为我真的不知道它到底是做什么的。

更新:显然,12% 繁忙的不是显卡,而是集成到 CPU 中的显卡芯片。我的显卡根本无法工作,在尝试让它工作时,我搞乱了系统。我以此为契机从 Debian 切换到 Manjaro,从 Cinnamon 切换到 Mate。现在显卡可以工作了,我不再遇到这个问题了,但我当然还是想知道如何更好地调试这样的问题。

相关内容