Czy mogę wyłączyć updatedb.mlocate?

62

Na serwerze Ubuntu tutaj i próbuję rozpakować 300M plików obrazów ze skompresowanego formatu plików przy użyciu Java.

Moja szybkość rozpakowywania wynosi 0,5 MB / s, beznadziejnie (34 dni na rozpakowanie 1,5 TB przy tej prędkości).

Próbuję dowiedzieć się, dlaczego, i jedyną dziwną rzeczą, jaką zauważam, jest to, że updatedb.mlocate zawsze działa, gdy robię proces rozpakowywania. Chcę to wyłączyć, aby zobaczyć, czy to przeszkadza, ale nie rozumiem wiele o tym, co to jest.

Top

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
źródło
1
Ten problem dotyka mnie od lat i nie mogę zrozumieć, dlaczego updatedb.mlocate działa z wysokim priorytetem IO, kiedy skrypt mówi tryb bezczynności ...
Ferran Basora
Dlaczego nadal jest domyślnie włączony? Przez wiele lat zdarza mi się to za każdym razem, gdy tworzę nowy system. : - /
Fernando Kosh
1
Dla każdego, kto zastanawia się, dlaczego taka rzecz jest potrzebna i czy coś zepsułeś,
Ufos

Odpowiedzi:

71

Można go zabić za pomocą:

sudo killall updatedb.mlocate

Lub:

sudo kill -9 <PID>

Działa codziennie przez crona. Wyłącz to za pomocą:

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

A jeśli chcesz ponownie włączyć:

sudo chmod +x /etc/cron.daily/mlocate
Eric Carvalho
źródło
10
nie zapomnij usunąć /var/lib/mlocate/mlocate.db, jak również
reto
2
Czy można to bezpiecznie wyłączyć?
Anton Rudeshko
2
ZOMG Tak. Zrób to.
meawoppl
8
Edytuj plik /etc/updatedb.confi ustaw PRUNEPATHSkatalogi, których NIE chcesz przeszukiwać.
inetpro,
@inetpro Dzięki. W moim przypadku korzystałem z tego, backintimeco z biegiem czasu tworzy mnóstwo linków twardych, a gdy dodałem elementy do, wszystko się poprawiło PRUNEPATH.
woot
17

Nie chciałem całkowicie eliminować tego procesu, ale chciałem, aby zdarzało się to rzadziej, więc wymyśliłem, jak ustawić, aby działał co tydzień zamiast codziennie. Jest to oparte na przyjętym odpowiedzi powyżej , ale chyba najlepiej wymienionych jako własną odpowiedź, jak to nie uszkadzając go.

To powiedziawszy ... To dość proste i wydaje się działać dobrze.

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

Pierwszy wyłącza zadanie crona. Drugi przenosi go do cotygodniowych zadań. Trzecie polecenie ustawia uprawnienia tak, aby było włączone. Codziennie, co godzinę, co tydzień i co miesiąc to wszystkie opcje.

KGIII
źródło
1
Zobacz „ Jak uzyskać mlocate do indeksowania tylko niektórych katalogów ”, aby poznać inny sposób na przyspieszenie.
Amir Ali Akbari