几个月以来,在我使用的 Ubuntu 14.04 桌面系统之一上,CPU 经常无缘无故地上升到 80-100%。htop
通常会将责任归咎于文件系统进程,例如nemo
或ntfs
。为了降低 CPU 的使用率,我会终止这些进程,这在某些情况下会导致无法访问文件系统并因此重新启动。
几天前,我注意到每当这种情况发生时,总会有一个进程占用高 CPU:。mediascanner-service-2.0
一些研究让我发现论坛上的这个帖子只是建议将其删除。所以我就这么做了。
最终结果出乎意料地积极:不仅 CPU 负载过高的情况消失了,而且系统整体速度也快了很多。Lens 的速度提升非常显著:找到像计算现在最多只需 2 秒,而以前则需要 20 秒左右。查找文件现在只需 5 秒左右,而以前则需要 30 秒左右。Eclipse 等大型程序的启动速度更快,工作空间也更加流畅。磁盘访问频率似乎也总体降低了。
这个包到底是什么mediascanner2.0
?它是 Unity 7 的一部分还是安装的依赖项后验? 是否有可能阻止其安装?
更新: 下列的塞斯的建议可以追踪这个包裹到indicator-session
:
$ sudo aptitude why mediascanner2.0
i indicator-session Recommends indicator-applet (>= 0.2) | indicator-renderer
i A unity8 Provides indicator-renderer
i A unity8 Recommends unity-scope-mediascanner2
pi unity-scope-mediascanner2 Depends mediascanner2.0
显然,mediascanner2.0
(和 Unity 8 shell)是基础 14.04 系统的一部分。剩下要回答的是这个恶意包的确切功能。
答案1
mediascanner2.0
是 Unity 8 中用于发现媒体并播放的软件包。例如,Unity 8 上的核心音乐应用程序用于mediascanner
扫描音乐目录(或任何目录),然后播放音乐。由于 Ubuntu 正在转向 Unity 8,因此它默认包含在 Ubuntu iso 中。
mediascanner
正在扫描整个硬盘以发现媒体,因此第一次扫描时,它会降低计算机的速度。最终,它会缓存其结果,然后就不会那么耗费资源了。
您有两种选择来帮助解决问题:
- (首选解决方案)您可以
mediascanner
通过创建新文件并为其命名来明确告知不要尝试扫描目录.nomedia
。然后,当mediascanner
到达此目录时,它甚至不会费心对其进行索引。理论上,您可以对计算机上的任意多个目录执行此操作,并且mediascanner
应该停止对它们进行索引。 - 您可以卸载它,这在短期内(直到 Unity 8 成为默认设置)将阻止这种情况发生,但您可能会遇到依赖性问题。注意:如果您正在进行 Ubuntu SDK 开发,则
mediascanner
是一种依赖项。
希望这有帮助:)