我可以禁用 updatedb.mlocate 吗?

我可以禁用 updatedb.mlocate 吗?

在这里的 ubuntu 服务器上,我正在尝试使用 Java 从压缩文件格式中解压 300M 的图像文件。

我的解压速率是 0.5Mbytes/sec,非常糟糕(以这个速率解压 1.5TB 需要 34 天)。

我正在尝试找出原因,我注意到的唯一奇怪之处是,在执行解包过程时,updatedb.mlocate 始终在工作。我想将其关闭,看看它是否会造成阻碍,但我不太明白它是什么。

顶部

top - 05:16:52 up 1 day,  5:15,  3 users,  load average: 2.00, 2.01, 1.83
Tasks:  83 total,   1 running,  82 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.4%us,  0.8%sy,  0.0%ni,  8.4%id, 90.2%wa,  0.0%hi,  0.0%si,  0.2%st
Mem:   1737420k total,  1722680k used,    14740k free,  1241260k buffers
Swap:   917500k total,      160k used,   917340k free,   165448k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
22901 davidpar  20   0 1051m  56m 4992 S    3  3.3   0:47.84 java
 2221 root      20   0 32348  26m  268 D    1  1.6  27:57.86 updatedb.mlocat
   25 root      20   0     0    0    0 S    0  0.0  10:10.77 kswapd0
  678 root      20   0 15864  444  268 S    0  0.0   0:19.45 irqbalance
  849 davidpar  20   0 26560 1676  332 S    0  0.1  17:17.49 screen

iotop

Total DISK READ: 4.07 M/s | Total DISK WRITE: 789.62 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
 2221 idle root     1556.98 K/s    6.36 K/s  0.00 % 99.61 % updatedb.mlocate
22902 be/4 davidpar    2.54 M/s  671.93 K/s  0.00 % 96.96 % java -cp /home/davidparks21/fruggutils/lib/FruggMapreduceJobs.~educe.UnpackImages /mnt/local/imagebinaries-r-00010 /mnt/ebs1/
  547 be/3 root        0.00 B/s   87.47 K/s  0.00 %  0.30 % [jbd2/xvdf-8]
  177 be/3 root        0.00 B/s    3.98 K/s  0.00 %  0.15 % [jbd2/xvda1-8]

答案1

可以用以下方法杀死它:

sudo killall updatedb.mlocate

或者:

sudo kill -9 <PID>

它每天按 cron 运行。使用以下命令禁用它:

sudo chmod -x /etc/cron.daily/mlocate

如果您想重新启用它:

sudo chmod +x /etc/cron.daily/mlocate

答案2

我不想完全消除这个过程,但我确实想让它发生的频率降低,所以我想出了如何将其设置为每周运行而不是每天运行。这是基于接受的答案多于但可能最好将其列为其自己的答案,因为它不会禁用它。

也就是说...它相当简单,而且看起来运行良好。

sudo chmod -x /etc/cron.daily/mlocate
sudo cp /etc/cron.daily/mlocate /etc/cron.weekly/mlocate
sudo chmod +x /etc/cron.weekly/mlocate

第一个命令禁用 cron 任务。第二个命令将其移至每周任务。第三个命令设置权限以启用它。每日、每小时、每周和每月都是选项。

答案3

我从未使用过locate,所以我删除了它。 sudo dpkg -P mlocate 另请参阅:https://wiki.archlinux.org/index.php/File_system_search

答案4

如果您卸载locatemlocateplocate使用例如:

sudo apt remove locate mlocate plocate

您可以使用以下方法防止它们被重新安装:

cat <<EOF | sudo tee /etc/apt/preferences.d/do-not-install-locate.pref
Explanation: Do not install locate nor mlocate nor plocate in order to avoid excessive Disk I/O
Package: locate mlocate plocate
Pin: origin *
Pin-Priority: -1
EOF

相关内容