每次启动时,tracker-store和tracker-miner-fs都会占用我的CPU资源。

每当我启动我的笔记本电脑时,进程tracker-storetracker-miner-fs会在10-15分钟内占用我的CPU 30-40%。我使用的是Ubuntu 12.04。
这些进程是做什么的?如何摆脱这些进程?

你的系统上所有的软件都是从软件中心安装的吗?还是你从其他地方安装了软件?你能将 tracker-x 连接到任何东西上吗?顺便说一句,我在 Lubuntu 13.04 上没有看到名为 tracker-x 的进程。如果你没有“隐私问题”,你可以在这里或者@ pastebin上发布类似 ps -edpkg --get-selections 的输出。也许有人能够找出问题所在。 - user25656
@vasa1 对不起,tracker-x 是指 tracker-store 和 tracker-miner-fs。 - Gaurav Agarwal
7我刚在Ubuntu 16.04.1 LTS上遇到了类似的问题。 - Alexey
可能有一些问题文件阻止了索引器完成索引。与其删除索引器,我有一个解决方案,可以帮助解决问题文件留在/tmp/tracker-extract-files.1000中的情况。重启后它仍然会进行一段时间的索引,但最多只需要几分钟就能完成。 - scruss
4Ubuntu 20.04和Ubuntu 19.10存在相同的问题:由tracker、tracker-miner和tracker crawler引起的长时间高CPU负载。由于搜索硬盘是主要任务,它从两个方面减慢了计算机速度:硬盘和CPU负载。设计不好。这么多数据到底用来做什么?没有内核会需要那么多数据!它最终是用作间谍工具吗?多么糟糕的设计:有一个选项可以在电池供电时不运行tracker:却没有被使用。幸运的是,你可以在dconf-settings中禁用tracker,请参考关于使用dconf-editor org > freedesktop > Tracker > Miner > File的帖子。 - opinion_no9
3看这个链接https://unix.stackexchange.com/questions/482390/usr-lib-tracker-tracker-store-causes-very-heavy-cpu-load-on-debian-buster对我来说完美无缺.. 我从18.04迁移到20.04,什么都不正常... 这个解决了问题 - Mr.P
apt-get --purge remove tracker - null
2随着Ubuntu 20.04的出现,这个问题又出现了。你真的可以将其完全清除,因为它甚至无法正确找到所有文件。 - user8842
当你清除Tracker时,你也会失去Nautilus - 这太糟糕了! - user8842
我仍然想知道:是否有人在启动后(未明确禁用它)使用如此多的循环次数而没有“追踪器”。对于那些禁用它的用户,我也想知道他们的用户体验如何-这是一个幸福的生活吗? - user643722
你应该尝试调试它,而不仅仅是禁用它。这里是官方文档链接:https://gnome.pages.gitlab.gnome.org/tracker/faq/#how-can-i-help-debug-problems-with-tracker-services - wranvaud
9个回答

在Ubuntu 16.04上永久禁用脚本解决方案

如评论中所提到的,此帖子中提到的文件在16.04中已不存在。您可以使用以下脚本(source):

echo -e "\nHidden=true\n" | sudo tee --append /etc/xdg/autostart/tracker-extract.desktop /etc/xdg/autostart/tracker-miner-apps.desktop /etc/xdg/autostart/tracker-miner-fs.desktop /etc/xdg/autostart/tracker-miner-user-guides.desktop /etc/xdg/autostart/tracker-store.desktop > /dev/null

# Interval in days to check whether the filesystem is up to date in the database. 0 forces crawling anytime, -1 forces it only after unclean shutdowns, and -2 disables it entirely
gsettings set org.freedesktop.Tracker.Miner.Files crawling-interval -2  # Default: -1
# Set to false to completely disable any file monitoring
gsettings set org.freedesktop.Tracker.Miner.Files enable-monitors false # Default: true

清理数据库使用以下方法:
tracker3 reset --filesystem --rss  # Tracker v3+

# Or, for older versions
tracker reset --hard  # 

这些是在Launchpad上确认的错误:9119819259481063255
这些进程是做什么用的?
Tracker是一种技术的综合体,旨在提供一个高度复杂、创新和集成的桌面环境。
Tracker提供以下功能: - 用于桌面搜索的索引器(有关详细信息,请参阅此规范:https://wiki.ubuntu.com/IntegratedDesktopSearch) - 用于对任何对象进行关键词标记的标签数据库 - 用于为需要向文件添加自定义元数据的应用程序(如gedit和rhythmbox)的可扩展元数据数据库 - 用于第一类对象的数据库,允许使用Tracker的数据库来存储和实现第一类对象和Gnome 3.0模型。
如何摆脱进程?
  1. 全局禁用追踪器(适用于所有用户)

  2. 以 root 权限编辑 /etc/xdg/autostart/trackerd.desktop 文件(sudo -i gedit /etc/xdg/autostart/trackerd.desktop

  3. 在文件末尾添加 Hidden=true

  4. 如果需要,对 /etc/xdg/autostart/tracker-applet.desktop 也进行相同操作

  5. 仅为当前用户禁用追踪器

  6. 进入目录 ~/.config/autostart,如果不存在则创建

  7. 创建名为 trackerd.desktop 的文件

  8. 将以下内容粘贴到文件中,保存并退出:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Tracker
    Hidden=true
    

来源:https://wiki.ubuntu.com/Tracker


3我可以卸载它吗?sudo apt-get purge tracker - Gaurav Agarwal
10@codingcrow 别卸载它,甚至别考虑清除。禁用就足够了。 :-) - TomKat
10@TomKat:为什么不呢?我刚刚在Gnome-Ubuntu上执行了apt-get uninstall tracker命令,一切都很顺利。它还删除了gnome-documents,但无所谓,我甚至不知道我有那个程序 :) - benjaoming
6这个不起作用。矿工仍然在每次启动时运行。 - Serrano Pereira
无法在14.04 LTS上运行。 - Bizmate
4禁用这个进程会影响搜索性能吗? - Nasreddine
/etc/xdg/autostart/trackerd.desktop在16.04上已不再存在。 - Nicolas Raoul
2在16.04版本中,你应该能够在/etc/xdg/autostart/tracker-xxxx目录下找到以下文件:miner-fsminer-appsminer-user-guideextractstore。我所做的是将这些文件中的X-GNOME-Autostart-enabled=true改为X-GNOME-Autostart-enabled=false - adadion
依然不起作用。所以我使用这个脚本代替。 - adadion
这里提到的一系列指令(https://gist.github.com/vancluever/d34b41eb77e6d077887c)对我很有效。 - rurtle
2为什么修复了,但是为什么发布这个追踪器到我的系统上,它在做什么? - Tejaskumar Tank
apt-get --purge remove tracker - null
4真让人恼火的是,这个过程消耗了大量资源,并且需要极大的毅力和专业知识才能禁用它。如果它是 GNOME 的一部分,那就足以放弃 GNOME 了。即使索引功能可以节省时间,但我在编辑器中等待我的按键出现的时间也无法弥补。 - Albert van der Horst
24我还在想,是哪个天才决定创建了一个极度占用CPU和内存的程序,并让它在启动时加载自己,并且在名称中明确包含了“tracker”和“miner”这两个词... - Michael Macha
在Ubuntu 22.04上是Tracker3:org.freedesktop.Tracker3.Miner.Files - Pablo Bianchi
3还是个愚蠢的名字。当它出现在我的进程列表中时,我有点低调地恐慌了一下。命名中没有任何东西能够将其识别为gnome的特性或其他什么。事实上,-fs-3 可以说让它看起来更加可疑。 - xorinzor
1我使用的是Ubuntu 22.04.2 LTS,今天tracker-miner-fs-3占用了100%的CPU。我让它运行了几个小时,当我回来时问题仍然存在。然后我阅读了关于这个问题的所有内容,并看到Ubuntu开发人员说tracker3是Ubuntu的重要组成部分,所以我真的不想将其移除。在运行tracker3 status之后,我发现它已经完成了索引,但tracker-miner-fs-3仍然占用100%的CPU。对我来说,唯一的解决办法就是将其移除,可惜。 - BrianBlaze
在22.04这天,这个方法对我很有帮助:将"Hidden=true"添加到/etc/xdg/autostart/tracker-miner-fs-3.desktop文件中。 - mrtexaz

只需使用gsettings更改这些值,就可以禁用Tracker的常量索引
gsettings set org.freedesktop.Tracker.Miner.Files crawling-interval -2  
gsettings set org.freedesktop.Tracker.Miner.Files enable-monitors false

数值可以通过使用dconf-editororg > freedesktop > Tracker > Miner > Files中导航来更改:

org.freedesktop.Tracker.Miner.Files

在这些更改之后,强烈建议 清理数据库 以回收磁盘上的一些空间。
echo y | LANG=en tracker reset --hard

2非常感谢,我只需要运行tracker-control-r命令,问题就解决了... - JoZ3
1tracker-control -r是做什么的?听起来自从这篇文章发布以来,tracker-control已经被弃用,并迁移到了tracker daemon命令,但是tracker help daemon(或者tracker-control --help)没有提到-r标志。它是否仍然具有相同的功能?我找不到旧的文档。 - redbmk
5我相信现代的等效命令是 tracker reset --hard - jcupitt
1按照这个步骤,在运行 tracker-control -r 后,我的笔记本恢复了流畅!附注:在16.04中 tracker-control 不再可用,但别担心,它将触发替代命令 tracker daemon - adadion
tracker-control: command not found。为什么会这样呢? - Tooniis
非常感谢 @Maxwel-Leite 提供的 dconf-editor 解决方案:解决了在 Ubuntu 20.04 和 Ubuntu 19.10 上的问题。太棒了! - opinion_no9
在d-conf编辑器中,找到org/freedesktop/tracker/miner/files/crawling-interval,并将其设置为-2。 - alEx

也许这对于Ubuntu 14.04/GDM来说是相关的,如果不想移除整个服务,最好是停止和/或重新设置优先级。
因此,可以采取以下方法:
停止/重新设置优先级(不推荐的方法):
$ tracker-control -p  
Found 171 PIDs…  
Found process ID NNNN for 'tracker-store'  
Found process ID MMMM for 'tracker-miner-fs'  

$ initctl stop tracker-store && renice -n +19 -p NNNN && initctl start tracker-store
注意人们建议使用tracker-control -r,对于启用了索引的系统可能会更好。
$ tracker-control -e

或者使用系统监视器图形界面:

应用程序 > 实用工具 > 系统监视器

  • 排序 > 名称
  • 滚动 > tracker-store
  • 右键单击 > 停止进程
  • 右键单击 > 更改优先级 > 非常低
  • 右键单击 > 继续进程

或者对于正在运行tracker-store的系统,也许是最合适的方法:

应用程序 > 系统工具 > 搜索与索引

List item


1谢谢!我没有注意到强制跟踪器仅在计算机不被使用时使用的选项。让我们看看这是否能解决问题。 - Alfredo Hernández
1这对我起作用。我取消了所有位置的选择,并将其他选项限制在最小设置上,然后进行了“重新索引”,问题就停止了。我喜欢这种方法,因为我很可能会记住我所做的事情。 - ryanjdillon
4对于Ubuntu用户来说,可以使用sudo apt-get install tracker-gui命令进行安装。 - smac89
1tracker-gui程序是唯一一个让我感觉不像是彻底的黑客行为的选择。+1 - grooveplex

一个适用于最新版本的Ubuntu 16.04
echo -e "\nHidden=true\n"|sudo tee --append /etc/xdg/autostart/tracker-extract.desktop
echo -e "\nHidden=true\n"|sudo tee --append /etc/xdg/autostart/tracker-miner-apps.desktop
echo -e "\nHidden=true\n"|sudo tee --append /etc/xdg/autostart/tracker-miner-fs.desktop
echo -e "\nHidden=true\n"|sudo tee --append /etc/xdg/autostart/tracker-miner-user-guides.desktop
echo -e "\nHidden=true\n"|sudo tee --append /etc/xdg/autostart/tracker-store.desktop

gsettings set org.freedesktop.Tracker.Miner.Files crawling-interval -2
gsettings set org.freedesktop.Tracker.Miner.Files enable-monitors false

tracker reset --hard

基本上,这是Radu和Maxwell答案的混合体,但位置和命令已更新为Ubuntu 16.04(有多个更改)。

在终端逐行添加这些命令时,每个命令都会出现超时警告。 echo -e "\nHidden=true\n"|sudo tee --append /etc/xdg/autostart/tracker-extract.desktop sudo: 无法解析主机 Thusitha: 连接超时 - Thusitha Sumanadasa
1这对于Debian Buster也似乎运作良好。 - MrMesees

我只是在Ubuntu设置中禁用了它 -> 搜索。在顶部栏中,有一个整体搜索的开关。我将其设置为关闭,然后运行了以下命令:
tracker reset --hard

看起来之后好像没有任何跟踪器进程在运行了。

1没有迹象表明 "设置->搜索" 与跟踪器有关。GNOME没有记录搜索相关的信息,因此很难说。如果你是对的,那这就是绝对的顶级答案。 - Albert van der Horst
3在Ubuntu 22中,命令是tracker3 reset -r - xinthose
我按照这些说明(在22.04上),退出登录,然后重新登录,跟踪器开始重新索引我的文件。看起来,在设置中关闭搜索切换只是改变了活动概览的搜索行为,而不是实际的索引。 - undefined

使用以下命令启用高级启动应用程序:
sudo sed -i "s/NoDisplay=true/NoDisplay=false/g" /etc/xdg/autostart/*.desktop

运行“启动应用程序”,取消选中“Tracker文件系统矿工”和其他类似的项目。它们可以很容易地重新启用。

使用Synaptic,我选择了“完全删除标记”对于“tracker”,以及对于“zeitgeist”(类似于使用清除命令,该命令应该删除所选程序的相关组件和配置文件)。更多的zeitgeist跟踪软件已经安装在我不知道的情况下,因此我选择了全部删除,除了看起来嵌入在操作系统中无法安全删除的zeitgeist共享库。几乎像一只患有严重心脏病的狗,或者更好的说像九头蛇。砍掉一个头,就会有三个头试图破坏你的气场。听起来很像微软喜欢对信任他们的人做的事情。不管怎样...我的笔记本现在启动时间少了一半,不会在随机时完全卡住,偶尔会崩溃我正在使用的东西,而且可能只是摆脱这个东西的解脱,但其他软件似乎在没有那个九头蛇的沉重触手的情况下运行得更好。算了吧...你知道我是什么意思。
为什么像这样的程序必须通过后门悄悄引入?也许是因为没有人希望在他们的个人笔记本电脑上出现这种东西。如果我是一个在主机上运行服务器版的技术人员,拥有大量的内存和处理器核心,那就另当别论了。也许那时我会想要使用追踪软件。即便如此,我仍然希望它是我自己选择的应用程序。
只是说说而已。

由于我不使用追踪器提供的任何功能,所以我会选择“完全删除”。当我需要类似的东西时,我肯定会重新安装。 - Augusto

上面的答案对我没有帮助。我终于找到了解决方案:
以高详细度运行矿工:
/usr/libexec/tracker-miner-fs -v 3
这样可以帮助我准确定位问题所在——一个包含非常多文件的目录(大约100万个,是某个项目的副作用)。清理掉这个混乱的目录解决了问题。

非常好;-) 你可能有一个合理的理由拥有这么多项目的目录。所以你应该提交一个错误报告,而不是赞美追踪器。 - Albert van der Horst
1@AlbertvanderHorst 我对这个还不太熟悉。我应该如何提交它作为一个错误呢? - Radost

一种解决方案是完全摒弃它,如果你想要搜索的话,可以采用老派的 `find(1)` 方法。
$ sudo apt remove tracker tracker-extract tracker-miner-fs

个人而言,我将其移除是因为在我的日志中出现了这个问题。
SQLite error: database disk image is malformed (errno: Resource temporarily unavailable)

买方须谨慎:作为一个副作用,我注意到nautilus在此过程中不知何故被卸载了。