【问题标题】:Mysterious find command hogging memory on Linux MintLinux Mint 上的神秘 find 命令占用内存
【发布时间】:2015-12-13 01:53:07
【问题描述】:

我正在运行 linux mint 17,我注意到我的计算机每隔一段时间就会慢下来。W 当我查看顶部时,我看到 "/usr/bin/find / -ignore_readdir_race (..." 等等。占用了我大部分的记忆。它运行了很长时间(几个小时),我猜它是我硬盘驱动器的自动索引过程。

我正在开展一个项目,该项目要求我在已安装的 SSD 上拥有超过 600 万个音频文件,因此另一个猜测是文件系统管理器正在尝试索引所有这些文件以进行快速搜索。是这样吗?有什么办法可以关闭 SSD 吗?

【问题讨论】:

    标签: linux performance filesystems linux-mint


    【解决方案1】:

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

    PRUNEPATHS
    updatedb(8) 不应扫描的目录路径名的空格分隔列表。每个路径名必须与 locate(1) 报告目录的格式完全相同。

    默认情况下,不会跳过任何路径。

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

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

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

    进一步阅读:

    【讨论】:

      【解决方案2】:

      这是一项每日 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
      

      如果一切都失败了,只需删除包。

      【讨论】:

      • updatedb 是 I/O 密集型的,它不会做任何 CPU 密集型操作。也许在足够快的 SSD 上,它可以让一个核心相当繁忙,但绝对不能在硬盘上。
      猜你喜欢
      • 1970-01-01
      • 2018-05-24
      • 2012-08-31
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2021-12-05
      相关资源
      最近更新 更多