Linux Mint 上神秘的查找命令占用内存

Mysterious find command hogging memory on Linux Mint

我是 运行 linux mint 17,我注意到我的电脑经常变慢 crawl.W 当我看顶部时,我看到“/usr/bin/find / -ignore_readdir_race (..." 等等占用了我的大部分内存。它运行了很长时间(几个小时),我猜它是我硬盘的自动索引过程。

我正在从事一个项目,该项目要求我在已安装的 SSD 上拥有超过 600 万个音频文件,因此另一种猜测是文件系统管理器正试图为所有这些文件建立索引以便快速搜索。是这样吗?有什么方法可以为 SSD 关闭它吗?

这是一项每日 cron 作业,用于更新 locate 命令使用的数据库。如果您想了解更多信息,请参阅 updatedb(8)。拥有 600 万个音频文件可能会导致此过程消耗大量 CPU,因为它正在尝试为您的本地文件系统编制索引。

如果您不使用 locate,我建议您简单地禁用 updatedb,如下所示:

sudo kill -9 <PID>
sudo chmod -x /etc/cron.daily/mlocate
sudo mv /var/lib/mlocate/mlocate.db /var/lib/mlocate/mlocate.db.bak

如果所有其他方法都失败了,请删除包。

locate 命令报告由常规 cron 任务为其数据库收集的数据。您可以从数据库中排除目录,使任务 运行 更快。根据updatedb.conf(5)

PRUNEPATHS
A whitespace-separated list of path names of directories which should not be scanned by updatedb(8). Each path name must be exactly in the form in which the directory would be reported by locate(1).

By default, no paths are skipped.

例如,在我的 Debian 机器上,/etc/updatedb.conf 包含这一行:

PRUNEPATHS="/tmp /var/spool /media"

您可以修改 /etc/updatedb.conf 以添加要忽略的目录。只需要列出目录树的顶级目录;忽略父目录时会忽略子目录。

进一步阅读: