[已解决] 启动速度慢 + CPU 高占用如何排查

最近几天我的 Arch Linux 突然出现了两个问题。

一是启动速度变慢,平时启动只需要约 10 秒,最近几天需要约 2 分钟。GRUB 显示“加载 Linux linux”、“加载初始化内存盘”后电脑会进入黑屏,约 2 分钟后 Arch Linux 才会启动。我记录了启动时的时间,发现 journalctl 显示的所有日志均在 Arch Linux 启动之后。然后我根据 ArchWiki 上的性能优化/启动过程一文尝试了 systemd-analyze,发现 kernel 启动时间过长,但 blame 无法显示 kernel 耗费的时间:

$ systemd-analyze
Startup finished in 5.688s (firmware) + 2.489s (loader) + 2min 2.182s (kernel) + 2.418s (userspace) = 2min 12.779s
graphical.target reached after 2.418s in userspace.

二是开机后占用较高,电脑风扇一直在响。系统监视器显示 CPU 占用 8% - 10%,但是应用程序中 CPU 占用没有超过 1% 的。

请问这两个问题接下来该如何排查。

journalctl -k看看内核日志

htop / top 都可以显示内核线程的 CPU 占用的。

日志:https://gist.github.com/TripleCamera/34429b2371f73560b0e1da61e1cd940b

但是,日志对应的时间在黑屏的时间段之外(黑屏的时间段大约是 08:54:35 - 08:56:35)。

$ top
[...]
 进程号 USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND                                                                                                              
   1835 triplec+  39  19  257.8g 358232 265656 R  71.4   2.2  18:27.48 baloo_file_extr                                                                                                      
[...]

禁用 baloo 之后,CPU 占用恢复正常了,风扇也安静了许多。

原来又是一个 nouveau 驱动炸了的。可以试试闭源驱动(nvidia)或者只把 nouveau 屏蔽,专心用核显。

感谢大佬!我安装了闭源驱动,开机慢的问题成功解决。