软件和更新程序在Ubuntu 16.04中占用了100%的CPU。

我已经将我的笔记本电脑(Lenovo Z50-70)升级到Ubuntu 16.04,它配备了i7 CPU和8G内存,从15.10升级而来。我一直在安装更新。我使用带有Gnome桌面环境(GDM)的Ubuntu。
最近我遇到了一个奇怪的问题,我的CPU(包括所有4个核心)被一些进程如gnome-software(Gnome软件)和fwupd(固件更新守护程序)使用了100%。这使得我的工作效率下降。即使我杀死这些进程,它们也会重新启动。
是否有解决方案可以让这些进程不再利用我的CPU的100%?我不想听到使用cpulimit实用程序为这些进程分配CPU数量的答案。我认为这是Ubuntu的核心问题,我期望得到真正的解决方案。
我尝试过的方法是,除了用于检查更新的官方PPA之外,删除我添加的那些PPA。但这并没有起作用!我附上了htop屏幕这些进程的截图。

Cpu 100% usage of gnome-software and fwupd


应该提交一个错误报告。 - mikewhatever
@mikewhatever,我希望能从askubuntu社区中获得一些提示或建议,如果不行的话,我打算提交一个错误报告或尝试一些其他的替代方案。 - Nasik Shafeek
你有没有检查dmesg或者/var/log目录下的系统日志是否有错误信息? - Delorean
@Dorian (尚未记录任何内容。) 说的是 dmesg 文件。 - Nasik Shafeek
1dmesg 是一个你输入的命令,它会输出一份日志。 - Delorean
谢谢你的建议,我已经尝试了,并使用grep命令通过管道过滤掉了gnome-softwarefwupd的任何结果,但没有找到。我还特意尝试了/var/log/syslog - Nasik Shafeek
2你还应该检查/var/log/apt/history.log以及该目录中的其他日志文件,例如/var/log/apt/term.log/var/log/dpkg.log,这些都是寻找线索和错误的地方。 - Delorean
@kisanme 这个问题有进展吗?我也遇到了完全相同的问题 - fwupdgnome-software 都达到了100%。我也是在16.04上。 - Chad Scherrer
@ChadScherrer 我发现我的硬件在Ubuntu上得不到很好的支持,但根据基准测试和我个人使用了大约一个月的经验来看,它似乎在Linux Mint上运行良好。所以我从Ubuntu转到了Linux Mint。建议你检查一下你的硬件与Ubuntu的兼容性。祝好! - Nasik Shafeek
4有一个已发布的错误可能与此相关:https://bugs.launchpad.net/ubuntu/+source/fwupd/+bug/1591868 - belacqua
7个回答

遇到了类似的问题。
正如其他答案所提到的-可以通过查看/var/log/syslog来确定问题所在。
在我的日志中,gnome-settings报告了以下内容:
(gnome-settings-daemon:3584): dconf-CRITICAL **: unable to create file '/home/USER/.cache/dconf/user': Permission denied.

为了解决这个问题,我运行了以下命令,请将USER替换为您的用户名:
sudo chown USER /home/USER/.cache/dconf

我遇到了完全相同的问题,同样的进程占用了100%的CPU。对我有效的方法是升级我的Ubuntu(16.04)软件。
sudo apt-get update
sudo apt-get upgrade

之后我重新启动了电脑,现在问题已经解决了。

我通过检查syslog(/var/log/syslog)成功解决了这个问题。它一直疯狂地记录无法创建文件/home/<我的用户名>/.cache/dconf/user的日志。当我给予这个文件夹正确的权限后,CPU使用率就降下来了。

3正确的权限。最好包括您授予的权限以及分配它们的命令。 - Andrea Lazzarotto
1那个文件夹在我的电脑上根本不存在。 - Alexis Wilke

有时候在系统日志中找不到与该服务相关的信息,这种情况下你可能只需要简单地重启它。为了避免手动查找和终止服务的麻烦,你可以直接使用 systemctl 命令:
sudo systemctl restart fwupd

这对我有用。我没有上面列出的/home/[user]/.cache文件夹问题。 - meawoppl

对我来说是权限问题。

正在查看:

$ cat /var/log/syslog

(gnome-software:3812): dconf-CRITICAL **: 无法创建文件'/home/{user}/.cache/dconf/user': Permiso denegado。dconf 将无法正常工作。 执行此命令,问题得到解决。
$ sudo chown {user} /home/{user}/.cache/dconf

今天我遇到了一个关于fwupd的问题,发生在一台电脑上。我还有两个gnome-software的实例在运行。总共有2个CPU被限制在100%。
为了快速停止这种混乱,我可以直接杀掉这3个进程:
ps -ef | less
(find processes in the list, record their PID)

kill <pid1>
kill <pid2>
kill <pid3>
...

(你也可以尝试使用killall gnome-softwarekillall fwupd,我只是发现killall命令有些危险...另外,在htop中你可以直接使用F9。在确认之前,请确保选择了正确的进程!)
现在,@belacqua指出了我们在launchpad上的以下错误报告:

https://bugs.launchpad.net/ubuntu/+source/appstream-glib/+bug/1591868

我觉得评论18特别有意思。

https://bugs.launchpad.net/ubuntu/+source/appstream-glib/+bug/1591868/comments/18

这个人说问题无法重现,但如果你在使用apt-get时(例如软件更新/安装)遇到问题,那可能就是因为这个原因。实际上,我在apt缓存中有几个完全垃圾的文件(即我的互联网连接在几天前失败了,一些缓存文件包含了HTTP 302错误,而不是预期的软件包列表)。我认为这个特定的评论很有意思,因为bug仍然存在,但不是由于所指定的yaml文件。在我的情况下,我无法在任何地方找到任何yaml文件。

我敢打赌,通过修复apt-get缓存,我解决了这个问题。看起来代码早在一段时间以前就被修复了。我只需要重新启动确认这个100% CPU使用率不会再次发生。


我和你遇到了同样的问题,它也阻塞了我的系统。
在改变了/home/{user}/.cache/dconf/user的所有者之后,一切看起来正常了。