为什么rtkit-daemon占用了我100%的CPU?

我有时会遇到一个rtkit-daemon进程占用100%的CPU并使系统无响应。重启后一切正常。rtkit-daemon是什么,为什么有时会占用100%的CPU?
2个回答

RealtimeKit是一个D-Bus系统服务,可以根据请求将用户进程/线程的调度策略更改为SCHED_RR(即实时调度模式)。它旨在作为一种安全机制,允许普通用户进程使用实时调度。总体而言,我不希望它会占用CPU使用率过高。如果您让它自行运行而不重新启动,会发生什么?我很想知道rtkit-daemon在任何给定时刻都处于活动状态的时间有多长。


40是谁想出这些名字的?rtkit-daemon很容易被解释为root kit守护程序。 - pt123
6这不是对问题“为什么有时会占用100%的CPU?”的回答,也不是解决问题“使系统无响应”的方法。 - twigmac
@twigmac 这甚至都不是。它只是解释了它应该做什么,但并没有解释为什么它会随机触发并在每隔几周的某个时候占用100%的资源数分钟。我还没有找到它行为的规律。 - WhyNotHugo
3@pt123 我在运行htop后真的很害怕,然后我找到了这个答案... - mescarra
3当我在/etc/group(Ubuntu 18.04)中注意到rtkit作为用户组时,我也吓得湿了内裤。 - agm1984

这个令人作呕的小程序是我避免使用任何依赖PulseAudio的东西的诸多原因之一。它应该是安全的。安全并不意味着它会尊重用户资源,例如CPU使用率,因此可能会造成不便,正如您所注意到的那样。然而,对于恶意目的来说,它是一个理想的篡改对象,因为它的名称总是让人警觉,然后快速的谷歌搜索就能消除所有的担忧。由于这个程序设计上的令人讨厌,一个篡改版本占用资源的情况不会引起太多关注。

您可以通过运行以下命令部分检查它的安全性:

ps aux | grep [r]tkit-daemon

应该显示正在运行的程序是/usr/lib/rtkit/rtkit-daemon,这是一个系统文件,很难被覆盖。
主要问题在于,在用户级别上真正需要实时特权的情况很少。默认情况下运行,并且大部分时间处于空闲状态但占用虚拟内存,这只是 Pulse Audio 的许多设计上的不良“特性”之一。定期启动并占用资源使其变得更糟糕。