单 CPU 100% by lspci

单 CPU 100% by lspci

在 Fedora 上,当我没有对计算机进行任何操作时,lspci 命令保持在 ~100%。我上周完成了全新安装,在此之前我也遇到过这个问题。

顶部输出给了我:

  PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令     
10283 蒂姆 20 0 19384 1436 1312 R 100.0 0.0 14:34.63 lspci       
 1752 蒂姆 20 0 624948 144552 109544 S 8.0 1.8 3:49.61 Xorg        
11197 蒂姆 20 0 612712 48612 36336 S 2.0 0.6 0:18.19 gnome-syst+
·
·

如果我检查系统监视器,我会发现只有 1 个 cpu 以 ~100% 的速度运行。

CPU使用率

此外,如果我尝试运行命令“lspci”,它只会继续加载并且不显示任何内容。

有关我的系统的一些信息:

Fedora 27(最新)
英特尔(R) 酷睿(TM) i7-4700MQ CPU @ 2.40GHz
每个插槽的核心数:4
内存:8G

答案1

您必须弄清楚哪个进程调用lspci.用脚本替换lspci二进制文件。将其重命名为lspci.bin(以用户身份发出以下命令root):

mv /usr/bin/lspci /usr/bin/lspci.bin

创建脚本:

touch /usr/bin/lspci

使其可执行:

chmod +x /usr/bin/lspci

使用您最喜欢的文本编辑器打开创建的脚本(例如nano

nano /usr/bin/lspci

并复制/粘贴以下代码:

#!/bin/sh
echo lspci "$@" >> /var/log/lspci.log
date >> /var/log/lspci.log
pstree >> /var/log/lspci.log
exec lspci.bin "$@"

重新启动计算机,检查是否lspci存在 CPU 过载问题,打开日志文件/var/log/lspci.log并尝试解释发生了什么。如果您找不到问题的原因,请发布日志内容并寻求额外支持。

如果问题已经消失,请恢复所有内容:

rm -f /usr/bin/lspci
mv /usr/bin/lspci.bin /usr/bin/lspci
rm -f /var/log/lspci.log
reboot

相关内容