updatedb.mlocateを無効にできますか?


62

ここのubuntuサーバーで、Javaを使用して圧縮ファイル形式から300Mの画像ファイルを解凍しようとしています。

私の解凍速度は0.5Mバイト/秒で、最悪です(この速度で1.5TBを解凍するのに34日かかります)。

理由を見つけようとしていますが、気づく唯一の奇妙な点は、unpackプロセスを実行しているとき、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
この問題は、年のために私に影響を与えてきた、スクリプトがアイドルモード...と言うとき、私は高いIOの優先度で実行updatedb.mlocate理由を理解することはできません
フェランBasora


なぜデフォルトのままでも有効なのですか?長年にわたって、新しいシステムを作成するたびにそれが起こりました。:-/
フェルナンドコシュ

1
なぜこれが必要なのか、それをオフにして何かを壊すかどうか迷っている人のために:unix.stackexchange.com/a/273283/126119
Ufos

回答:


71

次の方法で殺すことができます。

sudo killall updatedb.mlocate

または:

sudo kill -9 <PID>

cronによって毎日実行されます。以下で無効にします:

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

そして、再度有効にしたい場合:

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

10
削除することを忘れないでください/var/lib/mlocate/mlocate.dbだけでなく
レト

2
無効にしても安全ですか?
アントンルデシュコ14年

2
ZOMGはい。これを行う。
meawoppl 14

8
ファイル/etc/updatedb.confを編集し、検索したくないPRUNEPATHSディレクトリを設定します。
inetpro

@inetproありがとう。私の場合、私はbackintime時間の経過とともに大量のハードリンクを作成していましたが、にアイテムを追加すると物事はずっと良くなりましたPRUNEPATH
16年

17

プロセスを完全に排除したくはありませんでしたが、それをあまり頻繁に行わないようにしたいので、毎日ではなく毎週実行するように設定する方法を考えました。これは上記の受け入れられた回答に基づいていますが、無効にしないため、おそらく独自の回答としてリストするのが最善です。

とはいえ...かなりシンプルで、うまく機能しているようです。

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ジョブを無効にします。2番目は、毎週のタスクに移動します。3番目のコマンドは、許可が有効になるように設定します。毎日、毎時、毎週、毎月がすべてのオプションです。


1
別の方法で高速化する方法については、「特定のディレクトリのみをインデックス化するようにmlocateを取得する方法」を参照してください。
アミールアリアクバリ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.