В Ubuntu Linux нормально ли работает Mandb непрерывно (очевидно, в фоновом режиме)?


12

У меня есть доступ к узлу Ubuntu Linux в моем учреждении. Узлы являются общими для группы, но обычно я единственный человек, который использует этот конкретный узел.

Я выполняю вычисления параллельно на всех 8 процессорах на этом узле. Мой расчет выполняется, но когда я просматриваю активные процессы, используя top, я вижу дополнительный процесс, который говорит пользователь manи команда mandb. Эта mandbкоманда, кажется, выполняется каждый раз, когда я смотрю на topнее, и она, по-видимому, занимает довольно заметное количество мощности процессора ( 6 %CPU) и памяти ( 2.5 %MEM) top.

Когда я смотрю в Интернете, кажется, что:

mandb используется для инициализации или обновления вручную кэшей базы данных индекса, которые обычно обслуживаются человеком.

Почему же тогда mandbвсе время работает на этом узле? (У меня нет этой проблемы на других узлах в кластере моего учреждения, в соответствии с topдругими узлами.) Почему mandbнужно было бы работать все время, так как в настоящее время я не смотрю руководства?

Может ли этот процесс быть фантомным процессом, который я могу безопасно прекратить использовать kill?


@ derobert Я не сисадмин. Хорошо, я спрошу его. Благодарю.
Андрей

Ответы:


10

Это не нормально для mandbнепрерывной работы. Обычно выполняется mandbодин раз в день в задании cron для выполнения задачи обслуживания, такой как обновление индекса установленных справочных страниц и создание или усечение кэша отформатированных справочных страниц. Ежедневная работа должна выполняться за несколько секунд, возможно, за несколько минут, если у вас много man-страниц и медленный диск. Если работа длится дольше, значит, что-то не так.

6% ЦП невелик, но процесс может выполнять дисковый ввод-вывод. 2,5% памяти на узле кластера звучит высоко. Вполне вероятно, что задание неправильно настроено и выглядит там, где его не должно быть, или в программе есть ошибка mandb, или произошел сбой оборудования, приводящий mandbк зависанию.

Вы можете посмотреть сценарии cron в /etc/crontabили /etc/cron.*/*(точное местоположение зависит от распределения; /etc/cron.daily/man-dbи /etc/cron.weekly/man-db, скорее всего, это места). Вы можете увидеть, что вызвано mandb, более внимательно посмотрев на процесс: запустите pstree | lessи найдите mandbпроцесс. Запуск ps ww 12345(где PID 12345 - это процесс, вызывающий ошибку) покажет полную командную строку.

Это то, что вы можете диагностировать самостоятельно, но не можете исправить без прав root. Если у вас есть права доступа root, вы можете безопасно завершить mandbпроцесс (используйте команду sudo pkill mandbили su -c 'pkill mandb', в зависимости от того, как вы стали пользователем root). В любом случае обратитесь к системному администратору и объясните симптомы. Предоставьте всю информацию, которую вы можете (например, какую программу вызывать mandbи с какими аргументами).


2

Я проверил скрипты cron, это была просто команда для обновления индексов человека, ускорения поиска руководств, ежедневных запусков, вы можете безопасно их убить.

Вам это не нравится, просто отключите его chmod -x /etc/cron.daily/man-db


2

Это Heisenbug, и, возможно, тот, который был исправлен в последних версиях mandb. Это связано со сломанными man-страницами, порядком обхода файловой системы и пошаговыми перестройками mandb, превращающимися в очень медленные полные перестроения (15 миллионов сбоев страниц или около того, что занимает минуты на вращающейся ржавчине).

Если вы хотите устранить неполадки, запустите:

sudo mandb --no-purge --debug

и никогда не запускайте мандб с --createили без --no-purge. Затем убедитесь, что у вас установлена ​​последняя версия, и сообщите об ошибке, где cjwatson может ее увидеть.

Если, с другой стороны, вы просто хотите избавиться от проблемы, запустите:

echo 'man-db man-db/auto-update boolean false' |sudo debconf-set-selections

который отключит cronjob man-db (запускается ежедневно) и триггер dpkg (запускается при установке пакетов).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.