Posso desativar o updatedb.mlocate?

62

No servidor ubuntu aqui e estou tentando descompactar arquivos de imagem 300M de um formato de arquivo compactado usando Java.

Minha taxa de descompactação é de 0,5 MB / s, péssima (34 dias para descompactar 1,5 TB a essa taxa).

Estou tentando descobrir o porquê, e a única estranheza que noto é que updatedb.mlocate está sempre funcionando quando estou executando o processo de descompactação. Quero desligá-lo para ver se está atrapalhando, mas não entendo muito sobre o que é.

topo

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
fonte
11
Este problema foi me afetar por anos e eu não consigo entender por updatedb.mlocate correr em alta prioridade IO quando o script diz um modo ocioso ...
Ferran Basora
Por que ainda o padrão ativado? Durante muitos anos, isso acontece comigo toda vez que eu crio um novo sistema. : - /
Fernando Kosh
11
Para qualquer um que vagueia porque é que esta coisa necessária e se você quebrar alguma coisa por desligá-lo: unix.stackexchange.com/a/273283/126119
Ufos

Respostas:

71

Pode ser morto com:

sudo killall updatedb.mlocate

Ou:

sudo kill -9 <PID>

É executado todos os dias pelo cron. Desative-o com:

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

E se você deseja reativá-lo:

sudo chmod +x /etc/cron.daily/mlocate
Eric Carvalho
fonte
10
não se esqueça de excluir /var/lib/mlocate/mlocate.dbtambém
reto
2
É seguro desativá-lo?
Anton Rudeshko
2
ZOMG Sim. Fazem isto.
18714
8
Edite o arquivo /etc/updatedb.confe defina PRUNEPATHScom os diretórios que você NÃO deseja pesquisar.
Inetpro
@inetpro Obrigado. No meu caso, eu estava usando o backintimeque cria uma tonelada de hardlinks ao longo do tempo e as coisas melhoraram muito depois que adicionei itens ao PRUNEPATH.
woot
17

Eu não queria eliminar totalmente o processo, mas queria que isso acontecesse com menos frequência, então resolvi como configurá-lo para ser executado semanalmente, e não diariamente. Isso se baseia na resposta aceita acima, mas provavelmente é melhor listada como sua própria resposta, pois não a está desativando.

Dito isto ... É bastante simples e parece funcionar muito bem.

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

O primeiro desativa o trabalho cron. O segundo o move para as tarefas semanais. O terceiro comando define as permissões para que seja ativado. Diariamente, de hora em hora, semanal e mensal são todas as opções.

KGIII
fonte
11
Consulte " Como obtenho o mlocate para indexar apenas determinados diretórios " para outra maneira de acelerá-lo.
Amir Ali Akbari 10/10