Can I disable updatedb.mlocate?
On ubuntu server here and I'm trying to unpack 300M image files from a compressed file format using Java.
My unpack rate is 0.5Mbytes/sec, abysmal (34 days to unpack 1.5TB at this rate).
I'm trying to figure out why, and the only oddity I notice is that updatedb.mlocate is always working when I'm doing the unpack process. I want to turn it off to see if it's getting in the way, but I don't understand much about what it is.
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]
It can be killed with:
sudo killall updatedb.mlocate
Or:
sudo kill -9 <PID>
It runs every day by cron. Disable it with:
sudo chmod -x /etc/cron.daily/mlocate
And if you want to re-enable it:
sudo chmod +x /etc/cron.daily/mlocate
I did not want to totally eliminate the process but I did want to make it happen less frequently so I worked out how to set it to run weekly instead of daily. This is based on the accepted answer above but probably best listed as its own answer as it's not disabling it.
That said... It's rather simple and appears to work just fine.
sudo chmod -x /etc/cron.daily/mlocate
sudo cp /etc/cron.daily/mlocate /etc/cron.weekly/mlocate
sudo chmod +x /etc/cron.weekly/mlocate
The first one disables the cron job. The second moves it to the weekly tasks. The third command sets the permissions so that it is enabled. Daily, hourly, weekly, and monthly are all options.