我怎样才能弄清楚 polkitd 使用了我系统的大部分资源来做什么?

我怎样才能弄清楚 polkitd 使用了我系统的大部分资源来做什么?

我在 acer c7 上运行 13.04(安装了 chrubuntu 12.04,然后进行了两次系统升级),现在每当我使用电脑超过几分钟,它就会变慢,因为 polkitd、dbus-daemon、console-kit-daemon 和 networkmanager 占用了我所有的系统资源。我尝试在 Google 上搜索这个问题,但它似乎并不普遍,或者我只是错过了什么。

我尝试查看系统日志,但那里似乎没有什么特别不寻常的东西。我也尝试查看 dbus-monitor。我不完全确定我在那里寻找什么,但似乎没有持续的活动流。还有其他方法可以查看 polkitd 和/或这些其他进程的运行情况吗?

我也非常感激有关如何解决此问题的任何想法。

谢谢!

答案1

在运行 chrUbuntu 13.04 的 Acer C710 Chromebook 上合上盖子后,我也遇到了同样的 CPU 使用率过高的问题。在我的系统上,dbus-monitor --system显示大量 NameOwnerChanged 消息,大约每秒 30 条。这些消息反复唤醒 dbus 上的所有人,特别是 polkitd,还有网络管理器、nm-applet 等。

但是 DBus 之所以这样做,只是因为 acpid 不断重复运行/etc/acpid/lid.sh脚本。这又是由于 ACPI 中断线过于活跃,与此问题完全相同:

为什么 kworker cpu 使用率这么高?

对于我的系统,问题出在 /sys/firmware/acpi/interrupts/gpe1F 中,向此中断回显“disable”会立即停止 CPU 使用。这导致系统在盖子关闭时完全不执行任何操作,但我仍然可以从控制台“sudo pm-suspend”,并且打开盖子或按键盘可以正常唤醒。

更重要的是,CPU 使用率降至几乎为零!

答案2

我有过同样的症状,对我来说是内波穆克淹没在大量活动中。不过,我想有无数种方法可以产生同样的症状。

dbus-monitor 是一个很好的起点。你dbus-monitor --system也尝试过吗dbus-monitor --session

您可以使用 窥探其他高 CPU 消费者strace,看看他们正在打开/关闭/发送什么。

通过名称打开进程的 strace 的简单方法:

sudo strace -p$(ps -ef |grep console-kit-daemon |grep -v grep |awk '{print $2}') 

答案3

摘自:https://askubuntu.com/a/233947

我无法评论其他答案,但从评分最高的答案来看,它说要将“已禁用”回显到中断中,以禁用过度活跃的 ACPI 线路。要查找哪个中断,请运行以下命令:

grep . -r /sys/firmware/acpi/interrupts/

然后,查找数字较大的答案。将 Echo disable 放入该文件中,一切就绪了。

顶部的源链接包含有关如何在暂停和重启后使其持久的完整信息,但单击他的答案,我不值得获得任何赞誉。

相关内容