Могу ли я отключить updatedb.mlocate?

62

На сервере Ubuntu здесь, и я пытаюсь распаковать файлы изображений 300M из сжатого формата файлов с использованием Java.

Моя скорость распаковки составляет 0.5Mbytes / sec, ужасно (34 дня, чтобы распаковать 1.5TB с этой скоростью).

Я пытаюсь выяснить, почему, и единственная странность, которую я замечаю, это то, что 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
Эта проблема затрагивала меня в течение многих лет, и я не могу понять, почему updatedb.mlocate запускается с высоким приоритетом ввода-вывода, когда сценарий говорит режим ожидания ...
Ферран Басора
6
это ошибка см. bugs.launchpad.net/ubuntu/+source/mlocate/+bug/1190696
Thufir
Почему он по умолчанию включен? На протяжении многих лет это случается со мной каждый раз, когда я создаю новую систему. : - /
Фернандо Кош
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
Безопасно ли его отключить?
Антон Рудешко
2
ZOMG Да. Сделай это.
Meawoppl
8
Отредактируйте файл /etc/updatedb.confи установите PRUNEPATHSс каталогами, которые вы не хотите искать.
inetpro
@inetpro Спасибо. В моем случае я использовал, backintimeкоторый со временем создает тонну жестких ссылок, и все стало намного лучше, как только я добавил элементы в PRUNEPATH.
woot
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. Второй перемещает его на еженедельные задания. Третья команда устанавливает разрешения так, чтобы они были включены. Ежедневно, ежечасно, еженедельно и ежемесячно все варианты.

KGIII
источник
1
См. « Как заставить mlocate индексировать только определенные каталоги », чтобы ускорить его.
Амир Али Акбари