Workaround for tracker-miner-f high CPU utilization

High CPU utilization
Workaround for tracker causing high CPU utilization

One fine day I heard a laptop of mine making a sustained noise. I thought immediately of high CPU utilization. My intuition was right.

The issue was happening in Debian 11, running the Linux kernel 5.10.0-17-686-pae. Yeah, you’re right, it’s an i686 still functional machine. The issue began suddenly, but once it started remained happening for hours with no signs to stop.

I checked the processes using “top” and soon found the culprits. They were:

  • tracker-miner-f
  • tracker-extract
  • tracker-store

I have never seen these guys before, so, I started browsing the web for advisory… I found a good match in the thread tracker-miner-f taking over 100% of cpu. First, I learned that tracker-miner-f is Gnome’s file indexer. I had no idea about it. Anyway, I searched for any systemctl command to disable it, and found none. OK… so, I continued reading and figured out to uninstall these packages:

  • tracker-miner-fs
  • tracker-extract
  • tracker

but I noticed a removal of any of them (or all of them) would impact nautilus; so, I dismissed the idea of uninstalling them.

Then, I emptied the cache of tracker:

rm -f .cache/tracker/*

but the issue came back later.

My online search for a solution to tracker-miner-f high CPU utilization, brought me to a bug report page, on bugs.debian.org. Then, I realized that I wasn’t alone suffering the issue. The bug report 1016745 is just 10 days ago from my troubleshooting, and, unfortunately, there is not yet a solution for it.

Workaround

I figured out a workaround to stop tracker continue consuming my CPU. I added a couple of lines in my crontab (user’s crontab) to kill any tracker processes. Check it out:

@reboot uptime tracker daemon -k all
* */2 * * * tracker daemon -k all

The first line “@reboot uptime tracker daemon -k all” will kill any tracker processes that started running right after a reboot. The next line “*/2 * * * tracker daemon -k all” will kill every two hours any tracker processes that might started after it was invoked to kill them at reboot time.

I think this could be improved to just a single line that kills any tracker processes, let me say, ten minutes after the reboot. I need to take time to accomplish this. Note: If you have a chance for doing this, please leave a comment on how you did.

This workaround for tracker-miner-f high CPU utilization, has proven effectively. Use crontab -e to edit your user’s crontab, add the lines, and this will stop tracker consuming your CPU.

Please leave a comment if you liked the workaround, and/or if you can improve it.