Bisakah saya menonaktifkan updatedb.mlocate?

62

Di server ubuntu di sini dan saya mencoba membongkar 300 juta file gambar dari format file terkompresi menggunakan Java.

Tingkat pembongkaran saya adalah 0,5Mbytes / detik, buruk (34 hari untuk membongkar kecepatan 1,5TB pada tingkat ini).

Saya mencoba mencari tahu alasannya, dan satu-satunya keanehan yang saya perhatikan adalah bahwa updatedb.mlocate selalu berfungsi ketika saya melakukan proses unpack. Saya ingin mematikannya untuk melihat apakah itu menghalangi, tetapi saya tidak mengerti banyak tentang apa itu.

teratas

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]
David Parks
sumber
1
Masalah ini telah mempengaruhi saya selama bertahun-tahun dan saya tidak bisa mengerti mengapa updatedb.mlocate berjalan pada prioritas IO tinggi ketika skrip mengatakan mode siaga ...
Ferran Basora
Mengapa masih standar diaktifkan? Selama bertahun-tahun itu terjadi pada saya setiap kali saya membuat sistem baru. : - /
Fernando Kosh
1
Bagi siapa saja berkeliaran mengapa hal ini diperlukan dan apakah Anda memecahkan sesuatu dengan mematikan itu: unix.stackexchange.com/a/273283/126119
UFO

Jawaban:

71

Itu bisa dibunuh dengan:

sudo killall updatedb.mlocate

Atau:

sudo kill -9 <PID>

Ini dijalankan setiap hari oleh cron. Nonaktifkan dengan:

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

Dan jika Anda ingin mengaktifkannya kembali:

sudo chmod +x /etc/cron.daily/mlocate
Eric Carvalho
sumber
10
jangan lupa untuk menghapus /var/lib/mlocate/mlocate.dbjuga
reto
2
Apakah aman untuk menonaktifkannya?
Anton Rudeshko
2
ZOMG Ya. Melakukan hal ini.
meawoppl
8
Edit file /etc/updatedb.confdan atur PRUNEPATHSdengan direktori yang TIDAK ingin Anda cari.
inetpro
@inetpro Terima kasih. Dalam kasus saya, saya menggunakan backintimeyang menciptakan satu ton hardlink dari waktu ke waktu dan segalanya menjadi lebih baik setelah saya menambahkan item ke PRUNEPATH.
mainkan
17

Saya tidak ingin benar-benar menghilangkan proses tetapi saya ingin membuatnya jarang terjadi sehingga saya bekerja bagaimana mengaturnya agar dijalankan setiap minggu, bukan setiap hari. Ini didasarkan pada jawaban yang diterima di atas, tetapi mungkin paling baik terdaftar sebagai jawabannya sendiri karena tidak menonaktifkannya.

Yang mengatakan ... Ini agak sederhana dan tampaknya berfungsi dengan baik.

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

Yang pertama menonaktifkan pekerjaan cron. Yang kedua memindahkannya ke tugas-tugas mingguan. Perintah ketiga mengatur izin sehingga diaktifkan. Setiap hari, setiap jam, mingguan, dan bulanan adalah semua opsi.

KGIII
sumber
1
Lihat " Bagaimana cara mendapatkan mlocate untuk hanya mengindeks direktori tertentu " untuk cara lain mempercepatnya.
Amir Ali Akbari